php - 我在插入 "call to undefined method mysqli_stmt::get_result()"上不断收到此错误

标签 php mysql mysqli

<分区>

我不确定为什么我一直收到此错误,但我需要一些帮助...我只是尝试检查数据库以查看记录是否存在,然后再允许插入。

$input_errors = array();

if (!empty($_POST['username'])) {
    $user = $_POST['username'];
} else {
    $input_errors['username'] = "Must fill out username";
}

$email = filter_input(INPUT_POST, 'usermail', FILTER_VALIDATE_EMAIL);
if (false === $email) {
    $input_errors['usermail'] = "Not a valid email address";
}

if(count($input_errors) > 0) {
    print_r($input_errors); die();
}

$sql = "SELECT COUNT(*) as amount FROM people WHERE username = ? 
       OR email = ?";
if ($stmt = $mysqli->prepare($sql)) {

    $stmt->bind_param("ss", $user, $email);
    $stmt->execute();
    $results = $stmt->get_result();
    $data = mysqli_fetch_assoc($results);

    if ($data['amount'] > 0)
    {
        print "User already exists";
    }
}

else {
$stmt = $mysqli->stmt_init();
if (!$stmt) {
    echo "Init failed";
} else {
    $cmd = "INSERT INTO people (username, email, sign_up_date) VALUES (?, ?, NOW() )";
    if ($stmt->prepare($cmd)) {
        $stmt->bind_param('ss', $user, $email );
        $stmt->execute();

        echo $stmt->affected_rows . " row(s) inserted";

        $stmt->close();

    } else {
        echo "Prepare failed";
    }
    mysqli_close($mysqli);
    }
}

如果有人能伸出援助之手,那就太好了。

最佳答案

出于某种原因,我实在受不了这么长的代码。
您真正需要的只是

$cmd = "INSERT IGNORE INTO people (username, email, sign_up_date) VALUES (?, ?, NOW() )";
$stmt->prepare($cmd);
$stmt->bind_param('ss', $user, $email);
$stmt->execute();
if (!$stmt->affected_rows)
{
    print "User already exists";
}

无需为额外的选择查询而烦恼。
无需为绑定(bind)结果而烦恼。
无需处理大量嵌套的 if 语句(其逻辑有缺陷并且实际上破坏了整个困惑)。

关于php - 我在插入 "call to undefined method mysqli_stmt::get_result()"上不断收到此错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888539/

相关文章:

php - 错误号 : 1292 Truncated incorrect DOUBLE value in my SQL error

php - 如何使用 php 连接到远程 mysql 数据库(托管在 dotCloud 上)

php - 通过 html 表单保存到 MySQL 数据库

php - 使用 script 标签将 HTML 注入(inject) DOM

mysql - MySQL通配符授予权限的区别

mysql在选择和平均后重命名列值

mysql - 为什么字符串搜索在 sybase 中区分大小写,而在许多其他数据库中则不区分大小写

php - 语言选择列表

php - 你如何访问子方法

PHP : Logical query with some complications