我可以将这两个查询合并到一个查询中,该查询将检查用户是否已经喜欢某个特定帖子,如果没有,则插入数据。
在第一个查询中,我检查具有该用户ID和该帖子ID的行是否存在
$existCheck = $con->prepare("SELECT * FROM likes WHERE user=:user AND post=:post");
$existCheck->execute(array(':user'=>$user_id, ':post'=>$post_id));
$existNumber = $existCheck->rowCount();
在第二个查询中,如果行不存在,则插入数据
if($existNumber == 0) {
$insertLike = $con->prepare("INSERT INTO likes (user, post) VALUES(:user, :post)");
$insertLike->execute(array(':post'=>$post_id, ':user'=>$user_id));
}
$user_id = $_SESSION['user_id'];
和$post_id
是每个帖子的唯一ID。
答案 0 :(得分:0)
您需要将用户和帖子字段设置为唯一
ALTER TABLE `likes` ADD UNIQUE (`user`, `post`)
然后使用一个单独的sql:
INSERT INTO likes (user, post) VALUES(:user, :post) ON DUPLICATE KEY UPDATE `id`=`id` /* Hack to ignore updating */