解决MySQL server error report:Array 这个问题,现在终于搞明白了。

2016-07-07 15:11 来源:www.chinab4c.com 作者:ecshop专家

我在数据迁移过程中遇到的,
在注册新用户时出现:
MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `jida01`.`ecs_users`(user_name, email, sex, birthday, reg_time) VALUES('??chu@hotmailc.om','0','0000-00-00','1191151200') ) [2] => Array ( [error] => Duplicate entry '' for key 2 ) [3] => Array ( [errno] => 1062 ) )


解决方法:参考http://faq.comsenz.com/?action-viewnews-itemid-100


错误编号:1062
问题分析:
向唯一字段插入相同数据。
解决方法:
1、请检查程序是否做了修改,如果修改过,建议用我们的原程序覆盖您的修改,再次检查问题。
2、如果您的站点上有 phpMyAdmin ,还可以通过他检查下您的数据库中出错的表的自增字段的当前自增值是否和该表中自增字段的最大值相同,如果相同则会出现该错误。
3、如果您正在转移数据库,请确认数据库的版本是否相同。
4、如果以上方法还未解决,请恢复备份,用 DBCheck 将数据库检验为标准结构,并且重新开始升级。

方法 2 的检查修改详细流程:(以 Discuz! 的 threads 表为例,其他操作均相同)
1)进入您的 phpMyAdmin ,然后在左侧选择您出错的数据库。

2)选择您出错的表,并找到该表的自增字段,有 auto_increment 标识的字段即为该表的自增字段。

3)点击浏览,然后根据自增字段降序排序,记下自增字段的当前最大值。

4)点击该页面上方的操作,会看到“表选项”中的 auto_increment 项,这就是下一条你要插入的数据的自增字段的值,如果这个值和刚才记下的当前自增字段的最大值一样,就会报错了,所以将这个值改为大于刚才记下的当前自增字段的最大值,然后点击“执行”,即可解决问题。
示例中给出的当前自增字段的最大值为 54 ,而下一条你要插入的数据的自增字段的值为 55 ,这样则不会有问题。




如果你还是没有解决问题,

那么有可能你的uc_mebers and ecs_users两表的auto_increment的值不一样,

只要改成一样就可以了。我就是在这里出的问题。

回答:
没遇到过,关注一下哈。

多谢了,的确是UC的uc_mebers 和ecs_users最大id有冲突,现在改好了
顶楼主

好複雜.. 有看沒有懂..

我是複製商品時會出錯!

MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `ecshop`.`ecs_link_goods` (goods_id, link_goods_id, is_double, admin_id) VALUES ('1779', '0', '0', '1') ) [2] => Array ( [error] => Duplicate entry '1779-0-1' for key 1 ) [3] => Array ( [errno] => 1062 ) )

我的是合租的,该怎么解决啊?

很好 很强大

果然出错了。。。

那么有可能你的uc_mebers and ecs_users两表的auto_increment的值不一样,
就是这个


我备份ecshop v2.70的GBK数据库,恢复到utf8版本的ecshop v2.70时,出现错误:
MySQL server error report:Array( [0] => Array ( [message] => MySQL Query Error ) [1] => Array( [sql] => INSERT INTO `ecs_keywords` ( `date`, `searchengine`,`keyword`, `count` ) VALUES ('2009-05-12', 'ecshop', '

我重新启动了一下服务器就好了

安装了 ucenter的 需要uc_mebers and ecs_users两表的auto_increment的值一样

把uc里面 最大值和ec里面表里面的最大值两个都调高,而且调整为一样的

我也遇到过这样的 是uc没有通信成功 造成的

学习学习学习学习学习学习学习

终于解决。。。。。。。