Php 重复条目mysql唯一字段
我有一个带有varchar(25)字段类型的Php 重复条目mysql唯一字段,php,mysql,Php,Mysql,我有一个带有varchar(25)字段类型的'code\u number'列,并将其设置为唯一的字段类型。我尝试用不同的数字在number列中插入2个数字。第一个数字是'112225577',第二个数字是'112228899'。现在我正在尝试更新第一个数字,只将最后3位数字'577'更改为'433',变成'112225433'。但是我得到了错误键“code\u number”的重复条目“112225433” 它怎么能复制?我只有2个数据,数据不一样。有人能解释一下为什么会发生这种事吗 更新 这是
'code\u number'
列,并将其设置为唯一的
字段类型。我尝试用不同的数字在number
列中插入2个数字。第一个数字是'112225577'
,第二个数字是'112228899'
。现在我正在尝试更新第一个数字,只将最后3位数字'577'
更改为'433'
,变成'112225433'
。但是我得到了错误键“code\u number”的重复条目“112225433”
它怎么能复制?我只有2个数据,数据不一样。有人能解释一下为什么会发生这种事吗
更新
这是我的密码
产品
id INT(11)
product VARCHAR(250)
code_number VARCHAR(25) UNIQUE
...
id INT(11)
name VARCHAR(250)
email VARCHAR(100) UNIQUE
...
账户
id INT(11)
product VARCHAR(250)
code_number VARCHAR(25) UNIQUE
...
id INT(11)
name VARCHAR(250)
email VARCHAR(100) UNIQUE
...
我的问题是这样的:
$this->db->set('code_number','112225433');
$this->db->where('code_number','112225577');
$this->db->update('product');
当我尝试更新帐户记录时,电子邮件列也会遇到同样的问题。
以下是代码示例:
$this->db->set('email','andy123@yahoo.com');
$this->db->where('name','Andy');
$this->db->update('account');
电子邮件列中的电子邮件数据,其中
name='Andy'
为'andy123@hotmail.com“
您完全可以毫无问题地完成此操作(请参阅SQL FIDLE)
我想象您正在做一些事情,其中两行都被更新为相同的值,相当于:
update t
set code_number = '112225433';
这将准确地生成您报告的错误。毫无疑问,许多SQL查询都会产生这种效果。但是,这会产生这样的错误。这可能是SQL编辑器的问题。例如,它可以向您显示以前的值,但它可能已经对其进行了更新,因此您认为它尚未更改。我以前曾经遇到过这样的问题:DB中的值已更新,但编辑器尚未更新 你能发布你的PHP代码/mySQL模式定义吗?我正在使用Codeigniter框架,所以我的查询使用活动记录更新。当我尝试更新帐户表中的电子邮件列时,遇到了相同的问题。请稍后查看我的更新。感谢分享您正在使用的框架。你能发布一些代码吗?如果没有比前面提到的更多的信息,就很难开始帮助你