先问一个关于乱码的问题,
在my.ini中设置了 [client] default-character-set=utf8 [mysqld] default-character-set=utf8 然后重启wamp,phpmyadmin就连接不上了,就是#2002 那个套接字错误提示,然后我就把my.ini刚做的修改又改了回去,还是连接不上,(我把修改撤销了应该可以了呀?? 问题1)最后把localhost改为127.0.0.1 才恢复正常
问题二: 上述操作之后
最后问题
1、conn文件
<?php $conn = mysql_connect("localhost","root","") or die("Can't connect database: ".mysql_error());if($conn) echo "链接成功!"; mysql_select_db("liuyan"); mysql_query("set names 'gbk'");?>
2、input文件
3、write文件
<?phpinclude("conn.php");if(isset($_POST['username'])){ $username = $_POST['username']; $title = $_POST['title']; $content = $_POST['content']; $sql = "insert into easy values('$username','$title','$content',now())"; mysql_query($sql) or die("插入失败: ".mysql_error());}?><?phpinclude("conn.php"); $rowsPerPage = 10; $row = mysql_fetch_array(mysql_query("select count (*) as c from easy")); //查询总记录数...这点书上看的,不太懂,求解释 $rows = $row['c']; //得到记录数 /* $a = "select * from easy"; $b = mysql_query($a); $rows = mysql_num_rows($b);这个可以么? 另外这个和上面那个有什么区别?? */ $pages = ceil($rows/$rowsPerPage); //计算页数 $curPage = 1; if(isset($_REQUEST['curPage'])) $curPage = $_REQUEST['curPage']; $sql = "select * from easy order by posttime" ." limit ".($curPage - 1) * $rowsPerPage." ,$rowsPerPage"; $result = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($result)){ echo "
"; echo " |
内容:<?= $row[content]?> | "; echo ""; echo "
"; } //分页链接 echo ""; for($i = 1;$i<$pages;$i++) echo "$i$nbsp; "; echo "";?>
奉上全部的分了
回复讨论(解决方案)
mysql_query("select count (*) as c from easy") or die(mysql_error()); //这样报什么错
1、在未知后果的情况下,不要随意改变配置信息
2、数据库服务是公共的,任何的总体配置的改变,必然会影响到其他应用的使用
3、任何配置信息的改变,都只会影响改变时刻以后的表现。而改变时刻之前保存的数据有可能会出问题
4、有人说用 ALTER 改变字符集时,可以同时对内容的字符集做转换处理。但至少在我用的 mysql 中是不可以的
建议你恢复原始的配置文件,这样才有利于问题的解决
设置字段的字符集和适时的使用 set names 指令,是正确的做法
因为你的项目很可能会运行在一个已有的环境中。如程序依赖外部配置,那么后果是可想而知的