PHP致命错误:

时间:2015-11-26 10:29:22

标签: php database mysqli

以下在第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语句不起作用。

1 个答案:

答案 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');
}