24
2010
ezSQL İle Türkçe Karakter Sorunu Nasıl Aşılır?
Merhaba arkadaşlar.
Uzun zaman önce tanıştığım ezSQL sayesinde pek çok işimi kolayca hallettim. Sunduğu imkanlar ve wordpress in altyapısını oluşturması benim kullanma isteğimi arttırmıştı. Öncelikle internette küçük bir araştırma yaptım. İngilizceniz varsa kendi dökümantasyonu herşeyi güzelce açıklıyor. Ama eğer türkçe kaynak isterseniz Yakuter'in ve Yakup Gövler'in blog sayfasına göz atabilirsiniz.
http://www.yakuter.com/ezsql-veritabani-sinifinin-kullanimi/
http://www.yakupgovler.com/ezsql-veritabani-sinifi.html/2
Ben bunları okuyup irdeleyip kendime uygun bir yapı çıkarttım. Herkesin başına gelmiştir. Php mysql ve türkçe karakter sorunu. Bu ezSQL ile de başıma geldi. O yüzden internette araştırdım ve şöyle bir sonuca ulaştım.
Öncelikle ezSQL’i buradan indirip içinden mysql klasöründeki ez_sql_mysql.php ve shared klasöründeki ez_sql_core.php dosyalarını alıyoruz ve yeni kendi proje dizinimize aktarıyoruz.
Veritabanınızı oluştururken utf8 olarak oluşturun. Veritabanı bağlantısı yaptıktan sonra ise şu kodları yazın.
Bunu ezSQL ile otomatik hale getirmek için sql_for_tr.php isimli bir dosya oluşturup bunları içine yazdım. Burada dikkat edilecek nokta şudur. Dosyaların karakter kodlamaları aynı olmalı. Yani dosya ansi ile kodlanmışsa bütün dosyalar ansi olmalı. Tavsiyem ezSQL ve bu dosya için ansi kullanmanız.
Bunlara ek olarak birde db.php isimli bir dosyam var burada host,kullanıcı adı,şifre ve veritabanı adı gibi bağlantıda gerekli olan bilgileri tutuyorum. Onlarda şu şekildeler:
Şimdi bunları nasıl kullanacağız kısmına gelelim. Yeni bir php dosyası oluşturup aşağıdaki kodları sırasıyla yazalım:
-
include 'db.php';
-
include 'ez_sql_core.php';
-
include 'ez_sql_mysql.php';
-
-
$db = new ezSQL_mysql ( DB_USER, DB_PASS, DB_NAME, DB_HOST );
Öncelikle db dosyasını çağırdık. Sonra ezSQL dosyalarını çağırdık. Ve bağlantımızı kurduk. Dikkat ettiyseniz sql_for_tr.php doyasını çağırmadık. Bunu bizim için ezSQL kendisi yaptı. ez_sql_mysql.php dosaysının 131. satırına aşağıdaki kodu ekliyoruz.
-
include 'sql_for_tr.php';
Bu sınıf içinde bağlantı kurulduktan hemen sonra sql_for_tr. dosyasınındaki kodların çalışmasını sağlıyor.
Böylelikle hem veritabanına türkçe karakter kaydedebileceğiz hem de türkçe karakterleri sayfamızda sorunsuzca gösterebileceğiz. Dikkat edilecek bir diğer husus ise şu sayfamızın karakter kodlamasının utf8 olması karakter setinin utf8 olarak ayarlanması. Bunlarda tamamsa sorunsuzca kodlamaya geçebilirsiniz demektir.
Dosyalara şuradan erişebilirsiniz.
Sorularınızı sormaktan çekinmeyin. İyi çalışmalar.
Related Posts
11 Comments + Add Comment
Leave a comment
Kategoriler
- Actionscript (17)
- Adobe (3)
- Air (2)
- Amfphp (8)
- Android (3)
- Flash Builder (8)
- Flex (10)
- Genel (3)
- Havadan Sudan (9)
- Highslide (2)
- iPhone (1)
- jQuery (2)
- Php (11)
- Pratik Bilgiler (12)

An article by İsmail Şimşek





[...] şu adresten indirelim. Bu benim Türkçe karakterler için düzeltme uyguladığım dosya. Bir önceki yazımda bahsetmiştim. Daha sonra amfphp yi şu adresten indirelim. Son olarak amfphp bağlantısını her [...]
Bağlantı kodundan sonra $db->query(“SET NAMES ‘utf8′”); bunu yazmak kafi :)
bu yazıdan sonra öğrenmiştim yeterli olduğunu :)
Bende $db->query(“SET NAMES ‘utf8′”); yeterli olmadı.
İsmail Bey çözümünüz güzel ve akıllıca işime yaradı teşekkür ederim.
rica ederim. yardımcı olabildiysem ne mutlu.
Teşekkürler hocam.
teşekkür ederim. türkçe karakterlerde artık sorun yok.
merhabalar hocam ölüyü canlandırmak gibi oldu ama :D.
ben mysql kayıtlarımı utf8_general_ci olarak kaydediyorum. türkçe karakter sorununu ben de yaşıyorum. tüm kayıtlarda değil ama arada bir nedense oluyor böyle anlamış değilim.
sorunumu gidermem için
mysql_query ( “SET NAMES ‘utf8′” );
mysql_query ( “SET CHARACTER SET utf8″ );
mysql_query ( “SET COLLATION_CONNECTION = ‘utf8_turkish_ci’” );
deki ‘utf8_turkish_ci’ yi ‘utf8_general_ci’ olarak kaydetmem yeterli olur mu? bu yöntem halen geçerli mi? umarım yorumumu farkedersiniz. teşekkür ederim şimdiden kolay gelsin.
tabiki geçerli olur. aslında onu değiştirip değiştirmemeniz bir sorun yaratmaz. sonuç olarak karakter probleminizi çözecektir.
bu ayarlamayı yaptığım zaman eskiden ekli olan verilerdeki türkçe karakterler hep bozuldu bende. neden böyle oldu acaba?
eski verileri bozmaması lazım normalde. ama sebebi nedir bilmiyorum doğrusu. yeni eklediklerinde bir sorun var mı? yoksa sadece eski verilerde mi bozulma var? belkide eski verilerin karakter kodlaması ya da senin veritabanının karakter kodlaması farklıdır. mesela bir varchar ya da text olarak veri tuttuğun bir alanın karakter kodlamasını kontrol eder misin? latin_1 yazıyor olabilir belki.