首页 » 二次开发 » 阅读文章

ecshop整合ucenter后出现Duplicate entry ‘*’ for key 1 错误分析与处理

2010-10-19 15:42 8364 1 发表评论
标签:

当我们在ecshop中整合ucenter后,有时候由于两个数据库中的会员不一至,会造成MYSQL错误 提示如:
MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `beidou`.`beidou_users`(`user_id`, `email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES (’252′, ‘woodenman@sina.com’, ‘redolive222′, ‘a1d99b0aedd47668735be787eef49c18′, ’1254158519′, ’1254158519′, ’220.171.217.140′) ) [2] => Array ( [error] => Duplicate entry ’252′ for key 1 ) [3] => Array ( [errno] => 1062 ) ) ,那毋庸置疑,这是由于在同步添加会员名时,数据库中已经存在相同ID的记录,解决的办法当然可以直接删除ecshop 数据库中的那条记录,但这不是最好的解决办法,因为这样会让记录编号为重复的那个会员的信息丢失。

以下为本人的解决办法,以供有相同问题的朋友参考:

修改ecshop目录下includes/modules/integrates/ucenter.php中的function login函数下的

$this->db->query(‘INSERT INTO ‘ . $GLOBALS[‘ecs’]->table(“users”) . “(`user_id`, `email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES (‘$uid’, ‘$email’, ‘$uname’, ‘$password’, ‘$reg_date’, ‘$reg_date’, ‘$ip’)”);

$this->db->query(‘INSERT INTO ‘ . $GLOBALS[‘ecs’]->table(“users”) . “( `email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ( ‘$email’, ‘$uname’, ‘$password’, ‘$reg_date’, ‘$reg_date’, ‘$ip’)”);

上传覆盖文件即可。

本文地址:http://www.jwzzsw.com/archives/479.html

文章作者:思悟
版权所有 © 转载时请以链接形式注明作者和原始出处!

评论 共1条 (RSS 2.0) 发表评论

  1. 888ks.com说道:

    认同楼主的观点,顶.

发表评论

联系我 Contact Me

回到页首