Home  >  Article  >  Backend Development  >  留言板问题求助

留言板问题求助

WBOY
WBOYOriginal
2016-06-23 14:10:59909browse

先问一个关于乱码的问题,
在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文件
<?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 "<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; ";    echo "</div>";?>


奉上全部的分了


回复讨论(解决方案)

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

1、在未知后果的情况下,不要随意改变配置信息
2、数据库服务是公共的,任何的总体配置的改变,必然会影响到其他应用的使用
3、任何配置信息的改变,都只会影响改变时刻以后的表现。而改变时刻之前保存的数据有可能会出问题
4、有人说用 ALTER 改变字符集时,可以同时对内容的字符集做转换处理。但至少在我用的 mysql 中是不可以的

建议你恢复原始的配置文件,这样才有利于问题的解决
设置字段的字符集和适时的使用 set names 指令,是正确的做法
因为你的项目很可能会运行在一个已有的环境中。如程序依赖外部配置,那么后果是可想而知的

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn