如果记录中有两列的值,则忽略insert

f4t66c6m  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(293)

我试图修改它,这样如果有人试图插入一个已经存在pageid和displayid的记录,它将忽略插入并重新加载页面,实际上不会做任何更改。
我有一个唯一的索引在我的页面和显示列上,但它仍然在这里插入重复项。
如何修复此问题以避免插入重复项而忽略插入请求?

$pageID = $_GET['pageID'];
$displayID = $_GET['displayID'];

$assignPage = "
INSERT IGNORE INTO display_to_page(page_id, display_id)
Values( '".$pageID."', '".$displayID."')
";

$performAssign = $mysqlConn->query($assignPage);

header("Location: displayPage.php?displayID=".$displayID);
exit;
iezvtpos

iezvtpos1#

如果两列上的索引都是唯一的,则不应在表中插入重复的索引。
这看起来像 unique(page_id, display_id) 在表定义(或类似约束)中,或:

create unique index unq_display_to_page_2 on display_to_page(page_id, display_id);

请注意,这些约束/索引位于 display_to_page table。
在数据库中有这样一个索引/约束,mysql将不允许表中有重复项。
您还应该检查传递到字符串中的id。实际上,您应该切换到使用参数。可能是坏字符不知何故进入了查询字符串。

相关问题