簡體   English   中英

PHP未定義mysqli_result

[英]PHP undefined mysqli_result

我正在檢查數據庫是否使用了用戶名,但是我不斷收到此錯誤“在第9行調用未定義的函數mysqli_result()。

<?
$connect = mysqli_connect('localhost', 'root', '', 'mydb');
if(isset($_POST['username'])){
  $username = mysqli_real_escape_string($connect, $_POST['username']);
  if (!empty($username)){
    $username_query = mysqli_query($connect, "SELECT COUNT ('id') FROM 'users' WHERE 'username' = '$username'");
    $username_result = mysqli_result($username_query, 0);

    if ($username_result == 0){
        echo 'Available.';
        } else if($username_result == 1){
        echo 'Username unavailable.';
    }
  }
}
?>

也許是因為我正在使用jQuery處理來自其他文件的輸入,並以此對此進行檢查,因此它是未定義的。 在我正在觀看的教程中,相同的代碼也可以正常工作,但是他使用的是mysql而不是mysqli。 編輯:固定代碼看起來像替換$ username_query和$ username_rsult-

    $data = mysqli_query($connect, "SELECT COUNT(`username`) AS num FROM `users` WHERE `username`='".$username."'") or die(mysqli_error());
    $row = mysqli_fetch_assoc($data);
    $numUsers = $row['num'];
if ($numUsers >= 1){
        echo 'That user already exists.';
    }else{
        echo 'Username is available.';
    }

您還應該使用mysqli_result類的其他功能,例如mysqli_fetch_assoc

話雖如此,最好使用准備好的語句來綁定和檢索數據,例如

$_stmt = $_mysqli->prepare('SELECT `permissies` FROM `gebruiker` WHERE (`id`=? AND `pwdenc`=?)');
$_stmt->bind_param('is', $_cred[0], $_cred[1]);
$_stmt->execute();
$_stmt->bind_result($perm);

暫無
暫無

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

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