先问一个关于乱码的问题,
在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文件
<form name = "msgform" method = "post" action = "write.php" enctype = "multipart/form-data" onsubmit = "return checkMessage()">
//javascript略去了
<table width = "64%" border = "0" cellspacing = "1" cellpadding = "3" bgcolor = "#66CCFF" align = "center">
<tr>
<td width = "48%">用 户:
  <input type = "txet" name = "username">
</td>
 
</tr>
 
<tr>
<td colspan = "2">标 题:
<input type = "text" name = "title" size = "60" maxlength = "50">
</td>
</tr>
<tr>
<td colspan = "2">
<textarea name = "content" rows = "10" cols = "100"></textarea>
</td>
</tr>
<tr>
<td>
<div align = "right">
<input type = "submit" name = "sub" value = "提交">
</div>
</td>
<td>
<input type = "reset" name = "Rewrite" value = "重写">
</td>
</tr>
 
</table>
</form>3、write文件
<?php
include("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());
}
?>
<?php
include("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 "<table width = 90% align=center cellpadding=5 cellspacing=1 bgcolor=blue>";
   echo "<tr>";
   echo "<td rowspan = 2 width = 25% bgcolor = white>";
   echo "<tr>标题:<?=$row[title]?></tr>";
   echo "<li>用户:<?=$row[username]?>";
   echo "<li>  <?= $row[posttime]?>";
   echo "</td>";
   echo "<td>内容:<?= $row[content]?></td>";
   echo "</tr>";
   echo "</table>";
   echo "<br>";
   }
   //分页链接
     echo "<div align = center>";
    for($i = 1;$i<$pages;$i++)
    echo "<a href = 'write.php?curPage = $i'>$i</a>$nbsp;&nbsp;";
    echo "</div>";
?>奉上全部的分了

解决方案 »

  1.   

    mysql_query("select count (*) as c from easy") or die(mysql_error()); //这样报什么错
      

  2.   

    1、在未知后果的情况下,不要随意改变配置信息
    2、数据库服务是公共的,任何的总体配置的改变,必然会影响到其他应用的使用
    3、任何配置信息的改变,都只会影响改变时刻以后的表现。而改变时刻之前保存的数据有可能会出问题
    4、有人说用 ALTER 改变字符集时,可以同时对内容的字符集做转换处理。但至少在我用的 mysql 中是不可以的建议你恢复原始的配置文件,这样才有利于问题的解决
    设置字段的字符集和适时的使用 set names 指令,是正确的做法
    因为你的项目很可能会运行在一个已有的环境中。如程序依赖外部配置,那么后果是可想而知的