MySQL 查询错误 - 试图获取 php 和 mysql 中的非对象 属性

MySQL query error - Trying to get property of non-object in php and mysql

我正在尝试在 php 中创建用户注册表单。我刚开始编写 mysql 注入代码(不确定这是否是所谓的代码),我遇到了以下错误。

Notice: Trying to get property of non-object on line 92.

我通过检查表单的每个字段是否为空来开始我的代码,如果它们是空的,我将错误存储为数组。如果该字段不为空,我将使用 $_POST 将信息添加到变量中。

这是一个例子

if (isset($_POST["submit"])) {
$error = array(); 
if(empty($_POST['up_first_name'])) { // if no name has been supplied 
    $error[] = 'Please Enter Your First Name'; // add to array "error"
} else {
    $firstName = $_POST['up_first_name']; // else assign it to a variable
}

}

在此之后,我检查错误数组是否为空,如果是,我 运行 查询以检查输入的电子邮件是否已被使用。

这是我的代码。

if(empty($error)) // send to Database if there's no error
{
    // If everything is ok...

    // Make sure the email address is avilable:

    $query_verify_email = "SELECT * FROM user WHERE Email = ?";
    $stmt = $mysqli->prepare($query_verify_email);
    $stmt->bind_param("s", $email);
    echo $mysqli->error;
    $stmt->execute();

    if(!$query_verify_email) {
        echo 'Database Error Occured';
    }

如果找不到电子邮件,我会将表单中的信息插入到我的数据库中。

        if ($query_verify_email->num_rows === 0) { // IF no previous user is using this email.
            $query_insert_user = "INSERT INTO user (`Title`, `FirstName`, `LastName`, `Email`, `Password`, `DataOfBirth`, `ContactNumber`, `Address`, `Address2`, `Country`, `Postcode`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
            $stmt=$mysqli->prepare($query_insert_user);
            $stmt->bind_param("sssssssssss", $title, $firstName, $lastName, $email, $password, $dateOfBirth, $number, $address, $address2, $country, $postcode);
            echo $mysqli->error;
            $stmt->execute();
 
            if (!$result_insert_user) {

            echo 'Query Failed ';

            }

        } else { // If it did not run OK.
            echo '<div class="errormsgbox">You could not be registered due to a system </div>';

        }

            } else { // The email address is not available.

            echo '<div class="errormsgbox" >That email address has already been registered.</div>';

        }
    }

似乎导致问题的行是以下行。

 if ($query_verify_email->num_rows === 0) {

我不知道为什么会收到此错误,甚至不知道如何修复它。任何帮助都会很棒。

而不是 if ($query_verify_email->num_rows === 0) 你必须通过这个检查 - ($stmt->num_rows === 0)