Bilmek istediğin her şeye ulaş

Excel to MySql işleminde döngü limiti var mıdır?

PHP ile Excel dosyasından okuttuğum verileri MySQL veritabanına kaydediyorum. Bu işlemi yaparken de Spreadsheet_Excel_Reader sınıfını kullanıyorum. Fakat döngü belirli bir tekrardan sonra Türkçe karakter Convert işlemini yapmıyor. Böyle bir limit durumu var mıdır?Düzenle
PHP tarafında bir bilgim yok ancak döngü çok yüklü ise böyle bir sorunla karşılaşmış olabilirsiniz. Bunu önlemek için döngüye girmeden önce toplam kayıt sayısına (yaklaşık olarak) bakıp veya kayıt bitene kadar belli sayıda parçalar alıp bölümlere ayırabilirsiniz. Örneğin; 2 milyon kayıt var ise bunları tek döngü içine sokmak çok mantıklı olmayabilir ve oluşacak herhangi bir hatanın kaynağını da bulmanız zorlaşacaktır. Bunun yerine 2 milyon kayıt için örneğin 1000'er 1000'er döngü içine sırayla sokmayı deneyebilirsiniz. Ayrıca bir başka olası sebep ise döngü belli bir süre sonunda bellekte şişme veya taşma yapıyor olabilir. Mesela, sonsuz bir döngü bir süre sonunda timeout olur ve derleyici (genellikle) bu durumda size bir hata döndürmelidir.

Ayrıca şunu da belirteyim, veritabanına bulk insert yaparken yukarıda belirttiğim gibi bir yöntemle bunu parça parça yapmanız daha mantıklı olacaktır.


Tekrar belirteyim, teknik olarak döngüde kesin bir limit var mıdır bilmiyorum. PHP ve MySQL tarafında uzman arkadaşlar daha net bir yanıt verebilirler sanırım.
  • Paylaş
4

Turan Karatuğ, Hakan Bey teşekkürler cevabınız için. İncelediğimde 166. satırdan sonra türkçe karakter dönüşümünü yapmadığını gördüm. Sizin dediğiniz gibi işlemi her seferde 150 kayıt ekleyecek şekilde döngüye soktum. Yine 166. satırdan itibaren karakter dönüşümünü yapmadı. Çok ilginç bi durum.

Hakan Köse, Karakterin ne olduğu çok önemli.

Sanırım ben sorunu anladım. Excelden okuyup yazma esnasında ekranda text olarak görüntülenmeyen bir karakter var sanırım... Eğer debug edebiliyorsanız, debugger ile 166. satırdaki textin ne olarak geldiğine ve nasıl dönüştürüldüğüne bakabilir misin?

Turan Karatuğ, Hakan Bey sanırım öyle bir durum değil. Sorun çıkaran satırdaki verileri dosyanın ilk satırına alıp denediğimde sorun çıkmıyor. Ya da 166. satırdan itibaren hernagni bir Türkçe karakter içeren metin bozuk görünüyor.

Hakan Köse, 166. satırı atlamayı denediğinde aynı hatayı başka bir satır için alıyorsan, 166. satır ile yine hata aldığın satırın ortak noktalarını ve diğerlerinden farkını bulmayı deneyebilirsin?

MySql'i bilmiyorum ama MsSql'de böyle bir çalışmada ben de sorun yaşamıştım ve 1000'er 1000'er aktarmıştım.
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

908 Görüntülenme5 Takipçi2 Yanıt