Php 重复条目mysql唯一字段

Php 重复条目mysql唯一字段,php,mysql,Php,Mysql,我有一个带有varchar(25)字段类型的'code\u number'列,并将其设置为唯一的字段类型。我尝试用不同的数字在number列中插入2个数字。第一个数字是'112225577',第二个数字是'112228899'。现在我正在尝试更新第一个数字,只将最后3位数字'577'更改为'433',变成'112225433'。但是我得到了错误键“code\u number”的重复条目“112225433” 它怎么能复制?我只有2个数据,数据不一样。有人能解释一下为什么会发生这种事吗 更新 这是

我有一个带有varchar(25)字段类型的
'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框架,所以我的查询使用活动记录更新。当我尝试更新帐户表中的电子邮件列时,遇到了相同的问题。请稍后查看我的更新。感谢分享您正在使用的框架。你能发布一些代码吗?如果没有比前面提到的更多的信息,就很难开始帮助你