2012-08-15 94 views
3

我需要只能插入一行,如果数据不存在,除了日期列,这将永远是不同的,所以它会总是插入一个新的行,即使它不应该。PHP/MYSQL - 插入忽略,并忽略指定的列

我的代码:

$postID = $_POST['postID']; //example, 817 
$userID = logged_in(); //example, 2 
$date = time(); 

mysql_query("INSERT IGNORE INTO likes SET userID='$userID', postID='$postID', date='$date'"); 

我希望能够做这样的事情:

mysql_query("INSERT IGNORE date INTO likes SET userID='$userID', postID='$postID', date='$date'"); 

回答

3

如果你有一个userID约束UNIQUEpostID你可以做任何你正在做的现在,如果已经有记录,则日期列不会更新。

如果您希望在记录确实存在的情况下更新日期列(对于特定用户和帖子),您可以使用ON DUPLICATE KEY UPDATE date = '$date'

+0

如何限制它? – 2012-08-15 04:37:01

+0

我建议你检查文档,并确保你还没有现有的索引,但这应该做到这一点:'ALTER TABLE LIKES ADD UNIQUE(userID,postID);' – 2012-08-15 04:40:29

+0

哦,现在我明白你的意思了独特的约束,我从来没有想过这样做,谢谢。我必须更频繁地使用它。 – 2012-08-15 04:48:33