php - 使用 Doctrine 插入时 mysql 上的重复条目

标签 php mysql doctrine

我 [在 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/

相关文章:

php - 在 Yii 2 中清理数据 - 内置还是扩展?

Mysql加密类型

php - Doctrine 注释加载器失败

php - 尝试使用 phpMyAdmin 创建 Doctrine 数据库时出错

javascript - 防止缩放时输入边距增大

php - 运行 WHERE 子句后仅每隔 2 行显示一次

php - 文件存在但 laravel 找不到它(FileNotFoundException)

mysql - SSIS 2008 mySQL 源代码到 SQL 2008

mysql - 如何使用 mysql LOAD XML LOCAL INFILE 导入 xml 文件

php - Symfony2 : How to remove an element from a Doctrine ArrayCollection (many-to-many relation)?