我試圖檢查用戶名是否已經存在於數據庫中,但我正在努力。我得到一個錯誤說:用php檢查MySQL中的重複用戶的問題
Call to a member function bind_param() on boolean in /var/www/public/firsttry/index.php
這就是我想要實現這個我的代碼部分:
/*Check for duplicate in DB */
$stmt2 = $mysqli->prepare("SELECT username FROM Users (username, password) WHERE username = ?");
$stmt2->bind_param("s", $username);
$stmt2->execute();
$rows= mysqli_num_rows($stmt2);
if($rows>=1){
echo "<script type='text/javascript'>alert('This username is taken!')</script>";
}
else{
/*Proceed*/
}
正如你所看到的第一個我寫一份書面聲明,並嘗試綁定它的值是$username
($_POST["username"])
被分配給它。我執行查詢,然後嘗試查看返回的受影響的行數,如果它大於或等於1,則會拋出警報,否則,用戶可以註冊。我很確定它只是一些小錯誤,但我有點新PHP,所以請忍受我。我知道我的SELECT
聲明可能會返回false,但爲什麼它會抱怨我試圖在布爾值上使用bind_param
?
這不是一個有效的SELECT語句,所以準備失敗。 –
@JonStirling謝謝你快速回答,也許你可以告訴我它有什麼問題嗎? – Viktor
我懷疑那裏的每個SQL教程都會顯示基本SELECT語句的正確語法,可能在其第一頁上。 –