出于某种原因,无论参数是什么以及 SQL 行中的实际内容是什么,以下代码总是返回 true。它还会引发错误“注意:未定义的偏移量:第 7 行 C:\wamp\www\Social Networking\INC\login.inc 中的 0”,但我看不出有什么问题:
<?php
function checkAccount($username, $password){
include("INC/dbconnect.inc");/*"INC/dbconnect.inc" is <?php $pdo = new PDO("mysql:host=localhost;dbname=socialnetwork","user","123"); ?>*/
$select = $pdo->prepare("SELECT id,password FROM users WHERE user_username = :username");
$select->execute(array(':username'=>$username));
$q_rows = $select->fetchAll();
if($q_rows[0][0]/*the ID of the user, it should always be greater than 1, if not then the username does not exist*/ > 0 && $q_rows[0][0] != null){
if($q_rows[0][1]/*the password of the user*/ == $password)
return true;
else
return false;
}
else
return false;
$pdo=null;
} ?>
有人可以告诉我有什么问题吗?我已经在代码中评论了我遇到的问题,并且我尝试了正常$select->fetch()
而不是$select->fetchAll()
无济于事。在发布此之前,我已经阅读了 PDO(http://php.net/manual/en/pdostatement.fetchall.php)。这是我的文件http://pastebin.com/YCkrRivs的其余部分,谢谢。