插入前检查重复项
在插入数据库之前,我使用以下代码检查重复项.对我来说,只有当 name
、description
、price
、city
和 时,重复才被视为重复>enddate
匹配.
Before inserting into the database, I'm using the following code to check for duplicates. To me, a duplicate is only considered a duplicate when name
, description
, price
, city
, and enddate
match.
foreach($states_to_add as $item) {
$dupesql = "SELECT
COUNT(*)
FROM
table
WHERE
(
name = '$name'
AND description = '$description'
AND manufacturer = '$manufacturer'
AND city ='$city'
AND price = '$price'
AND enddate = '$end_date'
)";
$duperaw = mysql_query($dupesql);
if($duperaw > 0) {
echo nl2br("$name already exists in $city
");
}
else {
$sql = "INSERT INTO table (..... (here go the values to be inserted)
....
每个值都是在运行此检查之前定义的,我的结果总是在项目已经存在时返回.我转储了dupesql"并将命令复制/粘贴到 phpmyadmin 中,返回计数为 0.
Each value is defined prior to running through this checking, my result always comes back as item already exists. I dumped "dupesql" and copy/pasted the command into phpmyadmin which comes back with count 0.
推荐答案
您想要执行以下操作:
$dupesql = "SELECT * FROM table where (name = '$name' AND description = '$description' AND manufacturer = '$manufacturer' AND city ='$city' AND price = '$price' AND enddate = '$end_date')";
$duperaw = mysql_query($dupesql);
if (mysql_num_rows($duperaw) > 0) {
//your code ...
}
查看这里了解更多信息.
相关文章