>  기사  >  백엔드 개발  >  [已解决]php查询mysql返回了错误的结果

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

WBOY
WBOY원래의
2016-06-06 20:12:431099검색

大约是不支持中文字符的原因:将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里面查询一次就知道了

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