MDB2 keser ve unutuyor charset ayarı zaman reconnecting

1 Cevap php

Biz son zamanlarda garip bir hata ayıklanmış. Buna çözüm, ancak bütünüyle tatmin edici bir çözüm değildir.

Biz web sitemizi lokalize IntSmarty kullanmak ve kendi sarıcı kullanarak bir veritabanında yerelleştirilmiş dizeleri depolamak. Onun yıkıcı, IntSmarty bir veritabanı arama sonucunda, bu olabilecek herhangi bir yeni dizeleri kaydeder.

Biz MySQL sorguları yapmak için mdb2 bir Singleton örneği kullanmak ve bağladıktan sonra biz UTF-8 karakter kümesini değiştirmek için SetCharset () fonksiyonu kullanılır. Biz son ekler yapılmıştır zaman IntSmarty tarafından kaydedildi dizeleri ISO-8859-1 olarak yorumlanmıştır bulundu. Biz sorgu günlüğüne yakından baktı ve IntSmarty en yıkıcı denir gelmeden önce MySQL bağlantı kesildi bulundu. Daha sonra yeniden tesis var, ama hayır "SET İSİMLERİ utf8" sorgu yeni bağlantı yayınlandı. Bu kaydedilen dizeleri MySQL ile ISO-8859-1 olarak yorumlanır var olduğunu sonuçlandı.

Mdb2 varsayılan karakter seti Hiçbir seçenek gibi görünüyor. Bu sorunun çözümü bizim ekleyerek, MySQL sunucu yapılandırmasını değiştirerek edildi

init-connect='SET NAMES utf8'

my.cnf için. Bu sadece bizim karakter kümesi daima aynı sorunu çözer.

Yani, tüm sorgular çalıştırmak edilmiştir önce ben aşağı yırtılmış olan bağlantısını önlemek herhangi bir yolu var mı? Ben başka bir şeyden sonra imha edilmek üzere MDB2 örneği zorlayabilir?

Kalıcı bağlantıları açma çalışır, ancak istenen bir cevap değildir.

1 Cevap

PHP5 belgeleri:

Belirli bir nesne için tüm başvurular kaldırıldı veya nesne açıkça tahrip olduğunda or in any order in shutdown sequence. gibi yıkıcı bir yöntem kısa sürede çağrılacak

PHP documentation

(Vurgu benim)

Ne muhtemelen oluyor script açıkça nesneyi yok etmek ve yok olmasıdır böylece PHP bunun gibi hissediyor ne olursa olsun sipariş şeyler temizlemeye başladı yazısının sonuna aldığında - Senin durumunda, ilk veritabanı bağlantısını kapatma hangi .

Açıkça öncesinde senaryonun gerçek sonuna IntSmarty nesne yok, bu sorunu çözmek gerekir.