进行登录验证发现$row['password']的长度为0

破月 发布于 2014/07/02 14:22
阅读 383
收藏 0
PHP

18       $dsn="mysql:host=localhost;dbname=demoapp";
 19       $dbh=new PDO($dsn,'root','111111');
 20       $username=$_POST['email'];
 21       $password=md5(trim($_POST['pwd']));
 22       $sql="SELECT * FROM entry where email='{$username}'";
 23       $rs=$dbh->query($sql);
 24       $row=$rs->fetchall();
 25       print_r($row);
 26       $a=strlen($row['password']);
 27       echo $a;
 28       $c=strlen($password);
 29       echo $c;
 30       if($password == $row['password']){
 31         echo "succes";
 32
 33       }
 34   }


代码如上,print_r过后,看到了数据库中password的值,做if却不行。。



Array
(
    [0] => Array
        (
            [id] => 22
            [0] => 22
            [email] => kk@11.com
            [1] => kk@11.com
            [password] => 96e79218965eb72c92a549dd5a330112
            [2] => 96e79218965eb72c92a549dd5a330112
            [nickname] => 55
            [3] => 55
            [sex] => female
            [4] => female
            [brithday] =>
            [5] =>
            [regdate] => 0
            [6] => 0
        )

)
0832

加载中
0
首席技师
首席技师

fetchAll返回的值是一个包含结果集中所有行的数组,如果您希望返回一行记录,可以通过访问数组的第一个元素:


if($password == $row[0]['password']){
    echo "succes";
}

或者通过fetchAll的第二个参数fetch_argument来设置返回以0开始索引的列

PDO::FETCH_COLUMN:返回指定以0开始索引的列。

来源参考:http://cn2.php.net/manual/zh/pdostatement.fetchall.php



返回顶部
顶部