我很抱歉是的,我知道之前有人问过,但是当我看到帖子时,看起来我正在做的一切都没事。但是它没有用。
所以我想只在数据库中不存在$ domain的情况下才进行sql插入,我不介意多个域是否具有相同的IP。
这是我当前的sql查询,它不会向数据库添加任何域和IP。
mysql_query("INSERT INTO domains (domain, ip) VALUES ('$domain', '$ip') WHERE NOT EXISTS (SELECT FROM domains where domain='$domain')");
答案 0 :(得分:0)
您还需要将SELECT
应用于域
INSERT INTO domains (domain, ip)
SELECT * FROM
(SELECT ('$domain', '$ip')) AS tmp
WHERE NOT EXISTS (
SELECT * FROM domains where domain='$domain'
);
答案 1 :(得分:0)
这是一个很长的解决方案,但对于没有UNIQUE属性的列很有用。
INSERT INTO your_table (your_column)
SELECT 'your_value' FROM (SELECT 1) t
WHERE NOT EXISTS
(
SELECT your_same_column
FROM you_same_table
WHERE your_same_column = 'your_same_value'
);
获得解决方案here
但是如果您的列有UNIQUE属性,那么您可以使用这个简短的方法。
INSERT IGNORE INTO your_table(your_column) VALUES('your_value');