>백엔드 개발 >PHP 튜토리얼 >留言板问题求助

留言板问题求助

WBOY
WBOY원래의
2016-06-23 14:10:59973검색

先问一个关于乱码的问题,
在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 指令,是正确的做法
因为你的项目很可能会运行在一个已有的环境中。如程序依赖外部配置,那么后果是可想而知的

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.