我在使用mysql和doctrine时遇到了一个非常奇怪的问题[在codeIgniter的帮助下]。
我正在尝试创建一个简单的迁移脚本,从一个表中获取所有记录,然后在一个小程序之后将它们保存到另一个表中。
但是,在我的笔记本电脑上[运行Windows和wamp],我将原始表记录的双倍数量复制到目标表中。在我同事的笔记本电脑中,一切正常!我们都在使用mysql 5.0.86 [加上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错误?
先谢谢你!'
答案 0 :(得分:0)
我看到的唯一可能的问题是$oldrecords = $q->fetchArray();
行。我会从那里开始;在进入$oldrecords
循环之前,请检查以确保foreach
数组看起来正确。