Konular
Link Değişimi
Php
Mysql
Html
Javascript
Windows Vista
Program Anlatımı
Internet
Arama Motorları
Windows 2003 Server
Komikler
Windows Xp
Isa Server
Network
Ofis Programları
Css
Photoshop
Donanım
Joomla
Hava Trafik
Youtube Video
Diğer Konular
Ajax - Jquery örnekler

Linklerimiz
5 Yıldızlı Marmaris Otelleri
Eskişehir OsmanGazi üniversitesi
Gulet Cruising Turkey
Hotel Eleştirileri
Sitene Ekle
Link Verme
Otel Fiyatlar
Kiralık Boat
Gulet Holidays in Turkey
Hobi ve Spor Dizini
Very Ferry
Butik Oteller Dizini

 
PHP MySQL Tablolarının ve Tablo Alanlarının Karakter Setini Topluca Değiştirmek
MySQL veri tabanı kullanıyorsanız karakter seti tanımlamaları yüzünden zaman zaman sıkıntılı anlar yaşamışsınızdır. Aşağıdaki betik sayesinde bu tür sorunlarınızın ufak bir bölümüne çözüm sağlayabilirsiniz. Betiğin yaptığı iş tanımlanan karakter setini tüm tablolara ve tablo içinde alanlara uygulamaktan ibarettir. Performansını test etmesemde, üçyüzden fazla tablonun ve sayısı birkaç bini geçen tablo alanlarının tamamının karakter setinin değiştirilmesi 15-20 saniye civarında sürmüştür.

Örnek1: Kullanmakta olduğunuz tablolarınız utf8 ve tablolarınızın içindeki alanlar utf8_general_ci olarak tanımlanmış olsun. Bu durumda MySQL u ve ü harflerinde sorun çıkaracaktır. Bu sorunu gidermek tüm tabloarı ve tablolardaki alanları utf8_turkish_ci karakter setine geçirmeniz gerekecek. Bu durumda bu betiği kullanabilirsiniz.

Örnek 2: Hazır bir yazılım(wordpress, openads vs.) kurdunuz. Ancak MySQL sunucusunun ön tanımlı karakter seti latin1 olduğu için tüm tablolar ve tablo alanları latin1 karakter setinde tanımlanmış oldu. Yazılımı kullanmaya başlamadan önce istediğiniz karakter setiyle(mesela utf8 yada latin5) çalışabilecek hale getirebilirsiniz.(Tabi yazılımın desteklediğini varsayıyorum).

Örnek 3: Hazır bir yazılım kurdunuz, bir süre kullandınız ve veri girdiniz. Ardından karakter setini değiştirmek istediniz, mesela latin5den utf8e geçmek istediniz. Bu betiği kullanırsanız tüm tablolarınız ve tablolarınızın içindeki alanlar istediğiniz karakter setine geçer ancak tablolardaki veriler bozulur. Bu durumdaysanız bu betiği kullanmayınız.

Örneklerden de anlayabileceğiniz gibi, eğer tablolarınızda veri varsa ana karakter setini bu betik ile değiştirebilirsiniz ancak verilerinizin karakter setini bu betik değiştirmez. Fakat ana karakter setini değiştirmeden, alt karakter setleri arasında geçiş yapacaksanız tabloda veri olup olmaması "büyük ihtimalle"(tek tek test edecek vaktim yok maalesef) sorun çıkarmayacaktır.

Her ihtimale karşı betiği kullanmadan önce yedek alın. Yaptığınız değişikliklerden, başarılı veya başarısız farketmez, haberdar ederseniz diğer kullanıcılara faydanız olabilir. Ben utf8_general_ci olarak ayarlı ve içinde veri olan tabloları sorunsuz şekilde utf8_turkish_ci olarak ayarlayabildim.


/*
yazan : turker
e-mail : turker.biz@gmail.com
version : 0.01
------------
Üstteki bilgilere dokunmadan, istediğiniz gibi kullanabilir, satabilir ve dağıtabilirsiniz.
*/
# karakter seti ayarları
$charset='utf8';
# bağlantı ayarları
$conn=mysql_connect("localhost","root","") or die('nerdesin mysql?');
mysql_select_db("testdb",$conn) or die('taze bitti');
# karakter seti değiştirilecek alan tipleri
$types=array(
'CHAR',
'VARCHAR',
'TINYTEXT',
'TEXT',
'MEDIUMTEXT',
'LONGTEXT',
'TINYBLOB',
'BLOB',
'MEDIUMBLOB',
'LONGBLOB',
'ENUM',
'SET'
);
/*---------------- yeter bu kadar ayar ----------------------- */
# follow the white rabbit
$q1=mysql_query('SHOW TABLES');
while ($r1=mysql_fetch_array($q1)) {
$table=$r1[0];
$sql='ALTER TABLE '.$table.' CONVERT TO CHARACTER SET '.
$charset.' COLLATE '.$charset.'_turkish_ci';
mysql_query($sql);
echo "\n\n
$table tablosunun karakter seti değiştirildi";
$q2=mysql_query('SHOW FIELDS FROM `'.$table.'`');
while ($r2=mysql_fetch_assoc($q2)) {
//print_r($r2);
$field=$r2['Field'];
$type=strtoupper($r2['Type']);
$null=strtoupper($r2['Null']);
$default=strtoupper($r2['Default']);
if (in_array($type,$types)) {
if ($null=='YES') $null='NULL';
else $null='NOT NULL';
if (!empty($default)) $default='DEFAULT '.$default;
$sql='ALTER TABLE `'.$table.'` MODIFY COLUMN `'.$field.'` '.$type.' CHARACTER SET '.
$charset.' COLLATE '.$charset.'_turkish_ci '.$null.' '.$default;
mysql_query($sql);
} // if
} // while
echo "\n
$table tablosu içindeki alanların karakter seti değiştirildi";
} // while
Böyyük Patron Tarafından 23-09-2008 Tarihinde Gönderilmiştir.   Bu Konuyu Yazdır
Kaynak : http://perfectgate.net

 

En Son Eklenenler
PHP
mail ile ekli dosya göndermek
PHP
web sayfalarından meta tagları favicon resimleri almak
PHP
web sayfasını curl ile text olarak almak
PHP
curl ile facebook a login olmak
PHP
array_map fonksiyonu ile büyük kolaylıklar
PHP
php ile cache sistemi
PHP
google sitemap pinglemek
MYSQL
Default Değer
MYSQL
Bit Veri Tipi:
MYSQL
Primary Key ile Unique Key Arasındaki Fark
ajax - jquery örnekler
Bazı jQuery Fonksiyonlarınızı $(window).load Olayı İçerisine Yazın
Javascript
javascript kodlarını sıkıştırma veya şifreleme
ajax - jquery örnekler
jquery siblings
MYSQL
SQL Saldırıları ve Önlemler
MYSQL
MySQL ile Trigger Oluşturma
Arama motorları
google incelikleri
Arama motorları
Google Sizi Sevsin
PHP
PHP ile aranan kelimeyi renklendirme
PHP
PHP 5.3.0 da dikkat etmeniz gerekenler
MYSQL
MySQL Root Şifresini Sıfırlama
MYSQL
MySQL Root Şifresini Sıfırlama
PHP
php ile resimlere watermark yapmak
Arama motorları
Ref Saldırıları ve çözümleri
MYSQL
Tablodaki aynı kayıtları silmek
MYSQL
Regular Expression kullanımı
MYSQL
Regular Expression kullanımı
MYSQL
Regular Expression kullanımı
PHP
Dosya izinlerini kontrol etme
ajax - jquery örnekler
jquery bir elementin altındakilere bir class atamak
ajax - jquery örnekler
jquery bir elementin class (style) özelliklerini değitirmek
PHP
GDI ile progress bar yapmak
PHP
.htaccess ile sayfaları klasör olarak göstermek
ajax - jquery örnekler
jquery seçilen radio butonu bulmak
ajax - jquery örnekler
jquery 18 yaş kontrolü
Javascript
jquery browser öğrenmek
ajax - jquery örnekler
jquery mouse x y pozisyonunu bulmak
ajax - jquery örnekler
jquery mouse sağ tuşu kitlemek disabled
ajax - jquery örnekler
jquery jquery.js yüklenmişmi
ajax - jquery örnekler
jquery elementin disabled özelliğini aktif veya pasif yapmak
ajax - jquery örnekler
jquery checkbox kutusu kontrolü checked
İletişim : bpatron@codekodu.com
429046Kişi Tarafından Sitemiz Ziyaret Edilmiştir. 12 Kişi Online
Bugün 15 Saat 35 Dakikada Sitemizi Tekil 174 Kişi Ziyaret Etmiştir.
Dün Sitemizi Tekil 288 Kişi Ziyaret Etmiştir.
Sitemizi En Çok Tekil 10-03-2010 Tarihinde 402 Kişi Ziyaret Etmiştir.
Sitemizdeki bilgilerin büyük çoğunluğu alıntıdır.İlgili yazının yazarının veya kaynak sahibinin istemesi halinde ilgili yazı sitemizden kaldırılacaktır.
Sitemizin İmalatı Böyyükpatron Tarafından Yapılmıştır.