[英]MySQLi - Always Returning 1 Row
因此,我編寫了一個函數來檢查數據庫,以查看用戶名是否已被使用。
基本上,即使變量$ user不是數據庫中的用戶名,該行的行數始終返回1。
不知道為什么,有什么想法嗎?
功能:
function userTaken($user){
require_once('db.php');
$taken = mysqli_query($mysqli, "SELECT * FROM users WHERE username = '$user'");
if (!$taken) {
die(mysqli_error($mysqli));
}
$cnt = mysqli_num_rows($taken);
if($cnt > 0){
return true;
} else {
return false;
}
}
調用函數:
if(userTaken($user)){
echo "<font color='red'>That username is already taken!</font>";
}
嘗試先檢查然后查詢
if(isset($user) && $user!='')
{
$taken = mysqli_query($mysqli, "SELECT * FROM users WHERE username = '$user'");
}
根據我的經驗,MySQL可以為row_count返回一些時髦的值
也許
result = $db->query($mysqli, "SELECT COUNT(*) AS cnt FROM users WHERE username = '$user'")
while($row = $result->fetch_assoc()){
echo $row['username'] . '<br />';
}
或嘗試
/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.