PHP初学者,试着做了一个登录的页面,由11.php连接login.php,使用MySQL数据库对输入的用户名、密码验证,下面是验证部分的代码,我在数据库中建了两行,一行是纯数字的,另外一行user为中文,passwd是数字,在11.php中用户名、密码输入数字是可以的,输入中文加数字就返回 “不能取得结果集”,帮忙分析下吧,拜谢啊!不好意思,我没分了……
$name=$_POST['name'];
$password=$_POST['password'];if ($name && $password){
 //$sql = "SELECT * FROM login WHERE user = '$name' and passwd='$password'";
 $res = mysql_query("SELECT * FROM login WHERE  user = '$name' and passwd='$password'" );
 if(!$res){
 echo("<p>不能取得结果集</p>");
 exit();
 }
$rows=mysql_num_rows($res);
  if($rows>0){
   header("refresh:0;url=login.php");//跳转页面
   exit();
 }else
 echo "<script language=javascript>alert('密码错误');history.back();</script>";
}?>

解决方案 »

  1.   

    你吧sql语句输出来放到mysql客户端执行看看有没有数据
      

  2.   

    if(!$res){
    echo "<p>不能取得结果集</p>,原因:".mysql_error();
    把错误打印出来就知道为啥了。
      

  3.   

    楼主,我看你的标题以为是PHP俩接MYSQL数据库不支持中文用户名。
    谁知道看了才知道,是PHP查询数据库中文出错。……“连接数据库”指的是“PHP连接上MySQL数据库”。
    你现在的这个情况是“PHP查询SQL数据库,已经连接上了的”
    SET NAMES 这个
      

  4.   

    晕。编码问题啊。php文件编码/html编码/mysql表编码确定是不是一致
      

  5.   

    用户名为中文的话,那么你的字段名应该为String的吧,查询的时候最好要用''括起来告诉服务器你的用户名为中文~你没有区分字符类型
      

  6.   

    PHP环境最好自己安装配置,集成包不太好。
      

  7.   

    乱码一直是困扰初学者的一个非常大的问题。现在总结下造成乱码的原因及及解决方法一、HTML页面编码:meta http-equiv=content-type content=text/html; charset=utf-8 这里的编码要和数据库编码,及连接数据库编码二、文件在存储编码:比如文件inde.php,改变其存储编码为所需编码。只需用EditPlus等文本编辑软件 文件另存为,在编码中选择正确的编码(这点很多人都会忽略)三、数据库编码:比如用的是phpmyadmin 选择数据库后,选择操作选项。下面有一个整理,这里面也要设置成统一的编码四、表编码:操作和第三点类似。这里就不重复了五、字段编码:在建表的建字段的时候,有个整理。如果内容有汉字,就一定要改成统一的编码六、连接数据库时mysql_select_db()后面,要加一句 mysql_query( set names utf8 )七、 (刚遇到的)本地测试成功后的网站,传到网上去,会有乱码。可能会是在本地导出数据时没有选择正确的编码,所以才会在导入到web上后有乱码问题转自php100,想学习php,建议lz去php100看视频资料
      

  8.   

    要和网页编码一致,用NOOTPAD++或者其他工具设置一致
      

  9.   

    CSDN PHP板块每个月关于 编码问题的帖子可以占到 40%.
      

  10.   

    mysql_query("set names utf8")
    //然后保证你的php编码也是uft8