我 [在 codeIgniter 的帮助下] 面临一个非常奇怪的 mysql 和 Doctrine 问题。
我正在尝试制作一个简单的迁移脚本,从一个表中获取所有记录,经过一些处理后,将它们保存到另一个表中。
但是,在我的笔记本电脑上 [运行 windows 和 wamp] 我得到双倍数量的原始表记录已被复制到目标表。在我同事的笔记本电脑上,一切正常!我们都在使用 mysql 5.0.86 [plus windows plus wamp]。
代码如下:
function buggy_function(){
$this->db(); //get db connection
$q = Doctrine_Query::create()->from('Oldtable r');
$oldrecords = $q->fetchArray();
$count = 0;
foreach ($oldrecords as $oldrecord){
$newrecord = new NewTableClass();
$newrecord->password = md5($oldrecord['password']);
$newrecord->save();
echo $newrecord->id. ' Id -> saved.'
}
}
就这么简单!我在旧表上有 39 条记录,在新表中得到 78 条记录,除了唯一的主键外,这些记录完全相同。
好像脚本运行了两次。但是脚本的输出如下:
1 Id -> saved.
2 Id -> saved.
...
...
39 Id -> saved.
你知道为什么会这样吗?任何已知的 mysql 错误?
先谢谢你!'
最佳答案
我看到的唯一可能的问题是行 $oldrecords = $q->fetchArray();
。我将从那里开始;在您进入 foreach
循环之前检查以确保 $oldrecords
数组看起来正确。
关于php - 使用 Doctrine 插入时 mysql 上的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2835748/