使用doctrine插入mysql上的重复条目

时间:2010-05-14 16:17:41

标签: php mysql doctrine

我在使用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错误?

先谢谢你!'

1 个答案:

答案 0 :(得分:0)

我看到的唯一可能的问题是$oldrecords = $q->fetchArray();行。我会从那里开始;在进入$oldrecords循环之前,请检查以确保foreach数组看起来正确。