当前位置: 首页 > 面试题库 >

php / mysql防止多列重复输入

单喜
2023-03-14
问题内容

我想提出一种标准做法,以防止任何表在重要的地方重复。在大多数情况下,重复项是变量的组合而不是一个。我的主键只是每个字段的唯一ID,因此我无法使用它们。我一直在做的是先查询表,然后查询所要组合的行数是否为0,然后进行插入。但是,我已经读过,应该有可能在多个字段上设置唯一键以强制唯一性。INSERT
IGNORE听起来很可能,但是,我需要在多个列上忽略它。

例如,对于字段关注者和关注对象,一个表中可以有多个关注者和关注对象,但只能是两者的一个组合。

谁能建议语法先在多个字段上创建唯一键,然后再执行防止插入重复的SQL插入查询?非常感谢。


问题答案:

您可以在这些列上简单地创建一个多列索引并强制唯一性:请参见MySQL手册,网址为http://dev.mysql.com/doc/refman/5.0/en/multiple-column-
indexes.html

例如,在具有列id(唯一主键)colA和的表中colB,运行:

ALTER TABLE table ADD UNIQUE KEY (colA,colB)

就是这样:在这两个列中导致重复条目的所有INSERT现在都将返回MySQL错误,而不是进行遍历。如果使用INSERT IGNORE,则如果执行MySQL错误会违反此唯一约束,则不会引发MySQL错误,并且您的INSERT语句将被忽略。



 类似资料:
  • 这是我的用户注册数据库的方式,但我的问题是:如何防止数据库具有相同用户名的副本,或者换句话说,如果用户名存在于数据库。

  • 问题内容: 如何防止在php mysql中输入重复记录?在插入表之前验证输入。 我目前正在为我的网站建立一个用户注册部分,但是如果在数据库中发现重复的用户名或电子邮件地址,我想向他们显示一个错误。 编辑 这是我到目前为止要插入的行…我将如何在这里实现这两个答案: 我猜我可以在if … else语句中实现所有功能吗? 问题答案: 我使用了sql语句以及if else语句。 然后 显示错误消息,以防止

  • 问题内容: 我想防止使用vb.net和MySQL作为数据库的清单表单中出现重复条目​​,这是我的代码: 结束子 我在搜索答案时发现了这个问题,但是当我尝试运行它时,它没有读取插入命令,而是即使没有相同的人员ID也会直接转到msbox“人员ID已经存在”。 有人可以检查为什么不阅读插入内容, 我的数据库表值: pcode =主键 lname =长文本 fname =长文本 办公室=长文本 名称=长文

  • 问题内容: 这个问题已经在这里有了答案 : 如何防止PHP中进行SQL注入? (28个答案) 7年前关闭。 我已经建立了一个网站,该网站即将上线,并且有几个关于防止SQL注入的问题,我知道如何使用,但是我只是想知道是否必须在要获取的所有变量上使用它SQL语句,是否在执行select语句时还是在插入更新和删除时必须使用它?另外,在我将网站投入使用之前,您还建议我实施哪些其他安全措施,在此先感谢您的帮

  • 问题内容: 我想创建一个表来存储设备设置。该表具有三行:id,parameter_name和parameter_value。 该表是通过执行以下查询语句创建的: 然后通过执行以下方法存储行: 创建数据库后,将存储默认值: 但是,方法insertRow()的问题在于它无法防止重复输入。 有谁知道在这种情况下如何防止重复输入? 问题答案: 您可以使用列约束。 UNIQUE约束导致在指定列上创建唯一索引

  • 我想防止重复的值进入数据库表从一个使用PHP的表单。 具有名为clients的表的数据库: 一个名为form的简单表单。html 名为frm_脚本的表单处理脚本。php 到目前为止,我的frm_脚本。php文件,上面的作品和一个独特的记录显示客户添加。然而,对于重复记录,它抛出“错误查询数据库”。 如何更新以下frm_script.php脚本? 如果在输入名/姓组合时发现重复行,则应显示消息“Cl