PHP 未定义的 mysqli_result

标签 php mysql

如果用户名被占用,我正在检查数据库,但我不断收到此错误“在第 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.

也就是说,最好使用准备好的语句来绑定(bind)和检索数据,例如

$_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);

关于PHP 未定义的 mysqli_result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20196621/

相关文章:

PHP 受影响的行 = 1 无法正常工作

php - 通过加入更新 Codeigniter 事件记录

mysql - 从表 1 中获取表 2 中未显示的记录

javascript - 在 JavaScript 中使用 php json 结果

php - PHP下的mysql_query是阻塞函数吗?

php - Doctrine2 默认时间戳格式为 "0000-00-00 00:00:00"?

php - 使用 PHP Doctrine ORM 的复杂 WHERE 子句

php - 如何在php中向mysql插入缓冲区数据

php - 如何使用函数连接到数据库以及如何使用查询?

java - "Building the updating function just like inserting function"是好的还是坏的解决方案?