在我的数据库中准备重复的条目我想检查我的MYSQL表中是否存在该ID,但是如果我插入多行,我不知道如何检查它。
这是我的代码:
if(is_array($newdata)){
$sql = "INSERT INTO `events` (eventid, eventname, eventstart, eventend, coverid, coverurl, placeid, placename, city, country, latitude, longitude, street, zip) values ";
$valuesArr = array();
foreach($newdata as $data){
$id = $data['id'];
$name = $data['eventname'];
$start = $data['eventstart'];
$end = $data['eventend'];
$coverid = $data['coverid'];
$coverurl = $data['coverurl'];
$placeid = $data['placeid'];
$placename = $data['placename'];
$city = $data['city'];
$country = $data['country'];
$latitude = $data['latitude'];
$longitude = $data['longitude'];
$street = $data['street'];
$zip = $data['zip'];
$name = mysqli_real_escape_string($conn, $name);
$valuesArr[] = "('$id', '$name', '$start', '$end', '$coverid', '$coverurl', '$placeid', '$placename', '$city', '$country','$latitude','$longitude','$street','$zip')";
}
$sql .= implode(',', $valuesArr);
$result = mysqli_query($conn,$sql);
if(!$result)
{
die('Error : ' . mysqli_error($conn));
}
}
我想忽略现有的条目并转到下一行。
答案 0 :(得分:3)
我不记得确切的语法,但做一个选择并检查它是否为空:
$id = mysqli_fetchone("SELECT eventid FROM events WHERE eventid = ${id}");
if (is_null($id)) {
continue;
} else {
// insert
}
答案 1 :(得分:2)
=>尝试使用此检查电子邮件ID,您可以使用此方法验证所有文件
$query = mysqli_query($con, "SELECT * FROM emails WHERE email='".$email."'");
if(mysqli_num_rows($query) > 0){
echo "email already exists";
}else{
// do something
if (!mysqli_query($con,$query))
{
die('Error: ' . mysqli_error($con));
}
}
答案 2 :(得分:2)
答案 3 :(得分:0)
在插入之前设置一个查询 从表| _name中选择id,其中id = $ id 然后检查行数,如果num_rows == 0则执行insert查询 别的什么
algo:
$query = "your id check query"
execute query
$num_rows = get num rows
if($num_rows == 0)
your insert query
else
nothing
答案 4 :(得分:-1)
我想你可以尝试一下 SELECT EXISTS(SELECT * FROM table1 WHERE ...)
答案 5 :(得分:-1)
我想将您的问题“如何检查以避免重复”更改为“如何防止重复”。
在数据库表中将列ID定义为唯一。 (也称为唯一索引) 因此,Mysql将拒绝重复的ID条目。
然后我会执行1个查询foreach记录来插入,忽略错误。 (或检查是否是重复输入错误)并且在发生错误时不会死亡
使用INSERT IGNORE INTO ....