Doktrinini kullanarak ekleme mysql üzerinde yinelenen girişleri

1 Cevap php

Ben [CodeIgniter'da yardımıyla] mysql ve doktrini ile çok garip bir sorunla karşı karşıya duyuyorum.

Ben başka kaydederek, bir tablodan ve biraz sürecinden sonra tüm kayıtları alarak göç basit bir komut dosyası yapmak için çalışıyorum.

Ancak, benim laptop ben hedef tabloya kopyalanır edilmiş orijinal tablo kayıtları çift numara almak [pencereler ve WAMP çalışıyor]. Çalışma arkadaşlarımın dizüstü bilgisayarlar, her şey gayet iyi çalışıyor! Biz tüm MySQL 5.0.86 [artı pencereleri artı WAMP] kullanıyor.

İşte kod:

 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.'      
       }     

    }

Bu kadar basit! Ben Eski masada 39 kayıt var ve ben özgün birincil anahtar dışında, aynı kayıtları yeni tablodaki 78 kayıtları, alıyorum.

Komut dosyası iki kez çalışır gibi görünüyor. Ancak senaryonun çıktı şudur:

1 Id -> saved.

2 Id -> saved.
...
...

39 Id -> saved.

Eğer bu neden oluyor herhangi bir fikrin var mı? Mysql için bilinen herhangi bir bug?

Gelişmiş teşekkür ederiz! '

1 Cevap

Gördüğüm sadece olası bir sorun hattına $oldrecords = $q->fetchArray(); içinde. Ben orada başlayacak; Eğer foreach döngüye girmeden önce $oldrecords dizisi Doğru hakkına görünüyor emin olmak için kontrol edin.