求教大神,我用phpmyadmin创建一个数据库并创建一个表,表中的数据有中文字符,然后我创建一个html表单,是一个简单的登录界面,输入用户姓名(中文)和密码后提交,数据库可以连接上,但就是显示登录失败,但我的数据库中明明有这组数据。然后,我把数据库中的用户姓名改成英文,然后继续打开表单登录,这个时候就可以正常通过。感觉到这应该是中文字符编码问题,我把mysql数据库的所有地方都设置成了utf8,但是在phpmyadmin的首页上的右方,显示的是:MySQL 字符集: cp1252 West European (latin1),不知到是不是这个的问题。
我的php代码如下,总共两个文件:
1.login.php
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8">
<title>会员系统登录</title>
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<h1 align="center">会员登录系统</h1>
<form name="form2" action="chk.php" method="post">
<p align="center">请输入帐号:
<input type="text" name="user_id">
</p>
<p align="center">请输入密码:
<input type="password" name="user_passwd">
</p>
<p align="center"> 
<input type="submit" name="submit1" value="提交">
<input type="reset" name="reset1" value="重设">
</p>
</form>
</body>
</html>2.chk.php
<?$link=mysql_connect("localhost","mydb_user","123") or die("不能连接到数据库");mysql_query("use mydb");
$sqlstr="select * from user where id='".$_POST['user_id']."' and passwd='".$_POST['user_passwd']."'";
$result=mysql_query($sqlstr,$link);
if(mysql_num_rows($result)==1)
{
echo "<center>会员登录成功</center>";
}
else
{
echo "<center>会员登录失败</center>";
}
mysql_free_result($result);
mysql_close($link);
?>这个问题纠结了很长时间了,望哪位大神给予赐教~mysqlphpmyadmin乱码

解决方案 »

  1.   

    show variables like 'char%';
      

  2.   

    $sqlstr="set  names  utf8;select * from user where id='".$_POST['user_id']."' and passwd='".$_POST['user_passwd']."'";
      

  3.   

    mysql> show variables like 'character%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +-------------------------
    mysql> show variables like 'collation%';
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.00 sec)