Home  >  Article  >  Backend Development  >  [已解决]php查询mysql返回了错误的结果

[已解决]php查询mysql返回了错误的结果

WBOY
WBOYOriginal
2016-06-06 20:12:431097browse

大约是不支持中文字符的原因:将mysql的所有属性都改成英文字符之后,使用mysql好了.
但是! 用mysqli写 还是会返回空(又测了下,密码框不输入或输入0都会得到登录成功的提示)
都明白了 result的返回结果本来就不对.再用mysqli_fetch_array取出要用的元素就好了.

php部分代码如下:没有输出连接不到数据库的信息(应该是连接成功了) 没有报错 apache2和mysql的log错误日志也没有信息.但是:查询到的result返回值一直是NULL.(当然输其他密码会显示密码错误重新登录的)
然而我在mysql给它们设置的密码早已修改为与帐号值相等.为什么会返回错误的信息呢?是不是查询写错了??

<code>@ $db=new mysqli ('localhost','webdba','123456','educational_administration');
        if(mysqli_connect_errno())
        {
            echo"error".mysqli_connect_errno().":无法连接到数据库";
            exit();
        }
        //echo "success";
        if($user_type=='teacher')
        {
            $query="select 密码 from teacher where 教师编号=$user_id";
            if(!$query){echo'此用户不存在.<a href="login.html">点击重新登录</a>';}
            $result=$db->query($query);
            //echo $result.'';
            if($result!=$passwd)
            {
                echo '密码错误';
                $db->close();
                echo '<a href="login.html">点击重新登录</a> ';
            }
            else
            {echo $user_id.'已成功登录';}
        }</code>

回复内容:

大约是不支持中文字符的原因:将mysql的所有属性都改成英文字符之后,使用mysql好了.
但是! 用mysqli写 还是会返回空(又测了下,密码框不输入或输入0都会得到登录成功的提示)
都明白了 result的返回结果本来就不对.再用mysqli_fetch_array取出要用的元素就好了.

php部分代码如下:没有输出连接不到数据库的信息(应该是连接成功了) 没有报错 apache2和mysql的log错误日志也没有信息.但是:查询到的result返回值一直是NULL.(当然输其他密码会显示密码错误重新登录的)
然而我在mysql给它们设置的密码早已修改为与帐号值相等.为什么会返回错误的信息呢?是不是查询写错了??

<code>@ $db=new mysqli ('localhost','webdba','123456','educational_administration');
        if(mysqli_connect_errno())
        {
            echo"error".mysqli_connect_errno().":无法连接到数据库";
            exit();
        }
        //echo "success";
        if($user_type=='teacher')
        {
            $query="select 密码 from teacher where 教师编号=$user_id";
            if(!$query){echo'此用户不存在.<a href="login.html">点击重新登录</a>';}
            $result=$db->query($query);
            //echo $result.'';
            if($result!=$passwd)
            {
                echo '密码错误';
                $db->close();
                echo '<a href="login.html">点击重新登录</a> ';
            }
            else
            {echo $user_id.'已成功登录';}
        }</code>

首先:
if(!$query){echo'此用户不存在.点击重新登录';}
这个永远为false, 后面的永远不会输出

其次:
$result=$db->query($query);
返回的应该是个数组,应该是$result0这种结构

不知道你的查询内的中文是故意这样写的还是本身就是这样,你可以把query语句打印出来,然后在mysql里面查询一次就知道了

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