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)
我正在尝试在 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)