Sayfalar

20 Eylül 2011 Salı

Tüm Tabloları "utf8_general_ci" Nasıl Yaparım?

MySQL' de herhangi bir scripti kurdunuz ve Türkçe karakter problemi yaşıyorsunuz. Bir çok nedeni olabilir tabi. Şayet nedeni veri tabanınızdaki tabloların karakter kodlaması ise aşağıdaki kod sizin saatlerinizi kurtarabilecek kabiliyete sahip. Script sayesinde tüm tablolarınız ve varchar alanlar saniyeler içinde "utf8_general_ci" karakter setine dönüşüyor. Benim çok işimi gördü. Scriptteki bazı kodları değiştirerek hedef karakter setini farklı bir set ile değiştirebilirsiniz. Bu sayede tablodaki tüm varchar alanları istediğiniz karakter setine dönüştürmüş olursunuz. Onlarca tabloyu hızla dönüştürür.

NOT: İşlemi yapmadan önce her ihtimale karşı veritabanının yedeğini almanız önerilir.

<?php
 
$db = 'veritabanı adını buraya girin';
 
if (!$link = mysql_connect('127.0.0.1', 'root', ''))
{
  die(mysql_error());
}
 
if (!$db_selected = mysql_select_db($db))
{
}
 
echo "ALTER DATABASE `$db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;\n";
 
if (!($result = mysql_query("SHOW TABLES;")))
{
  die (mysql_error());
}
 
while ($row = mysql_fetch_assoc($result))
{
  $table = array_shift($row);
  echo "ALTER TABLE `$table` ENGINE = InnoDB;\n";
  echo "ALTER TABLE `$table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;\n";
}
?>

Hiç yorum yok:

Yorum Gönder