由於某些原因,無論參數是什麼以及SQL行內部的內容如何,以下代碼總是返回true。它也引發一個錯誤「通知:未定義抵消:0在C:\ WAMP \ WWW \線路7社交網絡\ INC \ login.inc」,但我看不出有什麼不妥:使用fetchAll()從PDO對象中選擇
<?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的其餘部分,謝謝。
確保你真正瞭解的回報 「假」 之間'的區別;'和'返回false;'。 – goat