gpt4 book ai didi

php - 防止多次查询 PDO

转载 作者:行者123 更新时间:2023-11-29 01:40:43 26 4
gpt4 key购买 nike

嘿,我正在使用这样的查询:

INSERT INTO likes( 
likes_memory_id,
likes_owner_id,
likes_like
) VALUES (
:likes_memory_id,
:likes_owner_id,
:likes_like)

每当用户单击“赞”按钮时,此查询都会添加一个新行。所以这个查询允许多次点赞。我想阻止具有相同 owner_id 和相同 memory_id 的行。为了防止这种情况,我可能会使用一个 select 语句,我可能会在两个查询中成功,但我确信有更好的方法来做到这一点。 (我对 if not exists 语句进行了研究,但我不太了解)如何避免仅使用 SQL 查询进行多次点赞?

最佳答案

最简单的是在您想要唯一的列上创建一个唯一索引;

CREATE UNIQUE INDEX uq_mem_own ON likes(
likes_memory_id, likes_owner_id
);

...并使用 INSERT IGNORE 插入 likes,如果索引没有阻止它,它将插入值,否则忽略它;

INSERT IGNORE INTO likes( 
likes_memory_id,
likes_owner_id,
likes_like
) VALUES (
:likes_memory_id,
:likes_owner_id,
:likes_like)

A simple SQLfiddle to test with .请注意,不会插入重复行。

关于php - 防止多次查询 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23978808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com