在插入MySQL之前,Mysqli重复输入检查

时间:2018-02-05 16:33:31

标签: php mysqli insert duplicates ip

嗨大家我在插入if else语句之前发现了几个关于重复条目检查的帖子。这些都不是我的函数或我无法弄清楚如何。 所以这是我的脚本到目前为止:

<?php
$con=mysqli_connect("xxx.xx.mysql","xxx","xxx","xxx");

// Check connection
if (mysqli_connect_errno()) {
  echo "Verbindung fehlgeschlagen zur MySQL DB". mysqli_connect_error();
}

// escape variables for security
$ip = mysqli_real_escape_string($con, $_SERVER['REMOTE_ADDR']);
$choice = mysqli_real_escape_string($con, $_POST['choice']);
$posturl = mysqli_real_escape_string($con, $_POST['posturl']);

//check duplicate votings for actual posturl
//...code...
//if dublicate abort ot close db connection
//...code...
//else insert in DB


$sql="INSERT INTO feedback_helpful (ip, choice, posturl)
VALUES ('$ip', '$choice', '$posturl')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo "Danke für dein Feedback";

mysqli_close($con);
?>

那么我怎样才能在插入之前检查是否存在重复的ip for posturl,如果没有则返回重复的投票消息,如果没有则插入数据库中。 感谢

1 个答案:

答案 0 :(得分:0)

首先,您应该创建一个您想要的唯一键不应该是重复记录,然后将记录插入表中,如果该记录已经存在则那么唯一键会生成错误,因此您应该使用带有关键字IGNORE的查询这是验证记录是否存在然后它不会在表中插入重复的条目,它也不会产生错误。