簡體   English   中英

MySQLi准備好的語句返回false

[英]MySQLi prepared statement returning false

我正在嘗試使用MySQLi在我的數據庫上運行多個查詢。 這是我的代碼:

$stmt = $mysqli->prepare('SELECT password FROM `users` WHERE username=? LIMIT 1');
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($hashedPass);
$stmt->fetch();

/* Check the passwords match */
$pwdHasher = new PasswordHash(8, FALSE);
if(!$pwdHasher->CheckPassword($password, $hashedPass))
    exit;

$stmt = $mysqli->prepare('SELECT u_id FROM `users` WHERE username=? LIMIT 1');
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($u_id);
$stmt->fetch();

但是當代碼運行時,我收到此錯誤:

Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\ajax\login.php on line 42

我已經檢查過數據庫字段是否存在,所以不是這樣。 第一個查詢工作,它似乎是第二個查詢不起作用。 我在phpMyAdmin中自己運行查詢並成功生成結果集,所以我真的不知道出了什么問題。

如果發生錯誤, prepare返回false。 嘗試

$stmt = $mysqli->prepare('SELECT u_id FROM `users` WHERE username=? LIMIT 1');
if ($stmt === FALSE) {
    die ("Mysql Error: " . $mysqli->error);
}

並且應該顯示一些mysql錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM