在将数据提交到MySql数据库之前检查是否存在

时间:2017-06-04 13:45:57

标签: php mysql mysqli

我有一个PHP代码将数据提交到数据库,但我想限制数据(如果它已经存在)。我已经尝试了下面的代码但总是插入数据而不检查是否存在。

if(isset($_POST['submit'])){

  $phone = $_POST['phone'];

  $checkDataSql = "SELECT phone FROM lead WHERE phone=$phone" ;
  $run = $conn->query($checkDataSql);

  if ($run->num_rows > 0) {
      header("location:add_lead.php?error=unsuccess");
      }
  else{
      $phone = $_POST['phone'];
   }

  $name = $_POST['name'];
  $email = $_POST['email'];
  $gender = $_POST['gender'];
  $treatment = intval($_POST['treatment']);
  $date = date('Y-m-d');
  $source = intval($_POST['source']);
  $staff = intval($_POST['staff_id']);


$insertLead = "INSERT INTO lead 
      (`id`, `name`, `phone`, `email`, `gender_id`, `treatment_id`, `date`, `source_id`, `remark`, `staff_id`)
      VALUES (NULL, '$name', '$phone', '$email', '$gender', '$treatment', '$date', '$source', '', '$staff')";



if ($conn->query($insertLead) === TRUE) {
    echo "New record created successfully";
    header("location:add_lead.php?submitted=successfully");
} else {
    echo "Error: " . $insertLead . "<br>" . $conn->error;
}


}

1 个答案:

答案 0 :(得分:0)

将标题设置为重定向不会立即执行重定向,因此您需要添加类似

的内容

exit;

在两个header()调用之后停止执行。

另外,现在看一下SQL注入,你的代码是完全不安全的,你会在你知道它之前被黑客攻击。