以下在第66行给出了错误。
第66行 - >
if ($result->fetch_array(MYSQLI_NUM) == NULL) {
根据文档,一切似乎都在运作。
我正在尝试确保插入的电子邮件地址尚不存在。
$_email= $connection-> real_escape_string($email);
$checkSql='SELECT * FROM customer_registration WHERE EMAIL='.'"$_email"'.';';
$result= $connection -> query($checkSql);
//print_r($result);
$sql="INSERT INTO customer_registration(CUSTOMER_FNAME, CUSTOMER_LNAME, CUSTOMER_DOB, APARTMENT, STREET, CITY, PROVINCE, POSTAL_CODE, EMAIL, PHONE, SIGN_IN_DATE)
VALUES ('".$fname."','".$lname."',STR_TO_DATE('$dob','%m/%d/%Y'),'".$apt."','".$street."','".$city."','".$province."','".$postalCode."','".$email."','".$phone."',NOW());";
if ($result->fetch_array(MYSQLI_NUM) == NULL) {
$connection->query($sql);
header('../login.php');
} else {
header('../index.php');
}
IF声明因任何原因不会发生,我不确定是什么问题。我检查了他们正在运行的查询,但if语句不起作用。
答案 0 :(得分:3)
$_email!=$email
两者都不同,将您的查询更改为
$email= $connection-> real_escape_string($email);
$checkSql="SELECT * FROM customer_registration WHERE EMAIL='".$email."'";
或者使用绑定语句并使用num_rows()
检查您的查询返回结果
$stmt = $connection->prepare("SELECT * FROM customer_registration WHERE EMAIL=?");
$stmt->bind_param("s", $email);
$stmt->execute();
$row_cnt = $connection->num_rows;
if ($row_cnt > 0) {
$connection->query($sql);
header('../login.php');
}