簡體   English   中英

MySQLi-總是返回1行

[英]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();
}

http://php.net/manual/zh/mysqli.query.php

暫無
暫無

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

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