MyBBDepo - Türkiyenin MyBB Deposu Forumuna Hoşgeldiniz
Eğer sitemize yaptığınız ilk ziyaretiniz ise, lütfen öncelikle Forum Kurallarını okuyunuz. Forumumuzda bilgi alışverişinde bulunabilmeniz için Kayıt olmalısınız. Üye olmayanlar forumumuzdan yararlanamazlar.
Eğer zaten kayıtlı kullanıcı iseniz, lütfen kullanıcı adınız ve şifreniz ile, Giriş yapınız. (Sitemize üyelik ücretsizdir).
007combatant avatar
Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5

Derecelendirme: 5/5 - 1 oy

Veri tabanı karakter seti değiştirici


Sponsor Reklam
media venus

Çevrimdışı 007combatant
 Tarih: 06-05-2013, Saat:23:40
(Son Düzenleme: 07-05-2013, Saat:20:30, Düzenleyen: 007combatant.)
#1
MySQL Tablolarının ve Tablo Alanlarının Karakter Setini Topluca Değiştirmek, php

Selamün aleyküm arkadaşlar. Bu konuda sizlere geliştirdiğim bir php script sunacağım. Bu script sayesinde istediğiniz veri tabanındaki tüm tabloların ve tablo alanlarının karakter setini topluca değiştirmeye yarıyor.

Eski latin5 veya farklı karakter setine sahip bir mybb veri tabanının karakter setini hızlıca ve kolayca utf8 veya istediğiniz bir karakter setine çevirebilirsiniz.

Kod:
http://www.codekodu.com/konu_MySQL_Tablolarinin_ve_Tablo_Alanlarinin_Karakter_Setini_Topluca_Degistirmek_kod_1824.html

Öncelikle yukarıdaki linkteki turker adlı sahışın yazmış olduğu betiği buldum ve sonra herkesin kullanabileceği şekilde web arayüzü olan bir script haline getirdim. Silinmesini istemediği kısımları tabiki silmedim. Buradan kendisine teşekkür ediyorum umarım görür.

Bu kadar anlatım yeter sanırım şimdi scripte geçelim.

Resim-Grafik Ekran görüntüsü:
resim
resim
resim
resim

Resimden de anlaşıldığı gibi kullanımı gayet basit. Ekten indirdiğiniz dosyayı rardan çıkartın. Forumun ana dizinine atın.adres çubuğuna siteadresiniz.com/db_mdp.php yazın (tabi siteadresiniz.com olan yere kendi sitenizin adresi ne ise onu yazacaksınız) formdaki yerleri kendi veri tabanınıza ait bilgilerle dolduruyorsunuz. Karakter setini giriyorsunuz (varsayılan olarak utf8_general_ci ayarlı) İşleme başla butonuna tıklıyorsunuz. Artık kendisi işlemi gerçekleştiriyor.

Yeri gelmişken şunu söylemek istiyorum. Bu gibi konularda misal olarak siteadresiniz.com yazıyoruz bazı arkadaşlar özellikle gidiyor siteadresiniz.com'a girmeye çalışıyor. Bu örnektir. Bunu yazmaya kalkmayın. Bu açıklamayıda yaptıktan sonra hala yazan olursa lütfen beni yormasın, çıkış butonu yukarda.

Aşağıdaki resimde mybbye ait 9 tane tablo olan bir veri tabanındaki tüm tabloları ve tablo alanlarını utf8e çevirdiğini görüyorsunuz.
resim

Tabloların boyutuna göre işlem süresi artabilir. Eğer çok şişkin bir veri tabanı ise vede işlem zaman aşımına uğruyorsa yeni bir veritabanı oluşturun tabloları parça parça çevirin. Bu işlem bile elle yapmaktan katkat hızlı olacaktır.

Dikkat-Uyarı-Kural Not: Bu script sadece karakter setlerini çevirir karakterleri çevirmez.

Güle güle kullanın.

işte MyBBDepo farkı. Bizi izlemeye devam edin... #2


Etitekler: Veri tabanı karakter seti değiştir, Veri tabanı karakter seti değiştirme, Veri tabanı karakter seti değiştirmek, mysql karakter seti, sql karakter seti değiştir, toplu değiştir, php, çevirici, çevir, çevirme


Ek Dosyalar
.rar   db_mdp.rar (Dosya Boyutu: 2.25 KB / İndirme Sayısı: 24)
Cevapla
Sponsor Reklam
sponsor reklam sponsor reklam

İzinli Screwy
 Tarih: 06-05-2013, Saat:23:47
#2
Teşekkürler bu merge kullananlar için çok işe yarayacak Gülümseme
Cevapla
Bunu Beğenenler:

Çevrimdışı EmreKarakaya
 Tarih: 07-05-2013, Saat:01:36
#3
işte MyBBDepo farkı. Bizi izlemeye devam edin...
Cevapla
Bunu Beğenenler:

İzinli devmybb
 Tarih: 07-05-2013, Saat:11:04
(Son Düzenleme: 07-05-2013, Saat:11:05, Düzenleyen: devmybb.)
#4
(06-05-2013, Saat:23:47)Screwy Adlı Kullanıcıdan Alıntı: Teşekkürler bu merge kullananlar için çok işe yarayacak Gülümseme
Merge yapanların işine yaramaz. Çünkü merge yaparken zaten tablolar utf formatına çevriliyor.
Bu script sadece şuana kadar MyBB_1.2.x forumlarını utf'ye çevirmemiş kişilerin tablolarını utf karakter setine çevirme işine yarar.

Ayrıca konu için teşekkürler..

Mesela bende böyle bir script bulmuştum birzamanlar.

Kod:
<?php
// Bu script Kaan Topal tarafindan haziranmistir.

//MySQL bağlantı ayarları
$db_server = 'localhost';
$db_user="Veritabani kullanıcı adı";
$db_password="Şifre";

mysql_connect($db_server, $db_user, $db_password) or die(mysql_error());

//Buraya ayarlarını değiştirmek istediğiniz veritabanı
//adını girin veya tüm veritabanı üzerinde değişiklik yapmak
//istiyorsanız boş bırakınız.
$dblist=array();

//Eğer değiştirlmesini istemediğiniz bir veritabanı varsa buraya
//girişini yapınız. information_schema veritabanı ana veritaban olduğu
//için karakter setini değiştirmenize gerek yoktur.
$skip_db_list = array('information_schema', 'mysql');

//Hangi karakter tipi kullanilacak?
$charset="utf8";

//Hangi karşılaştırma kullanılacak?
$collation="utf8_general_ci";

//Sadece kullanılan veritabnlarını göster.
//Bu özelliği false olarak kullanınız.
$printonly=false;

//Bu bölge boş bırakılırsa, kullanıcı adı üzerinde
//bulunanan tüm veritabanları üzerinde etkileşim
//uygulanır.
$skip_db_text = '"'.implode('", "', $skip_db_list).'"';
if(count($dblist)<1) {
    $sql="SELECT GROUP_CONCAT(`SCHEMA_NAME` SEPARATOR ',') AS FRST FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME` NOT IN ($skip_db_text)";
    $result = mysql_query($sql) or die(mysql_error());
    $data = mysql_fetch_assoc ($result);
    $dblist=explode(",", $data["FRST"]);
}

//Veritabanı güncellemesi
foreach ($dblist as $dbname) {
    $sql="SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET $charset COLLATE $collation;') as FRST FROM `information_schema`.`TABLES` t WHERE t.`TABLE_SCHEMA` = '$dbname' ORDER BY 1";

    $result = mysql_query($sql) or die(mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
        echo $row["FRST"]."\r\n";
        if(!$printonly) {
            mysql_query($row["FRST"]) or die(mysql_error());
        }
    }
}
?>
Cevapla
Bunu Beğenenler: 007combatant , S.G

Çevrimdışı Remzi0068
 Tarih: 07-05-2013, Saat:16:21
#5
Latin olarak eklenmis bir verinin utf8'e cevrildiginde karakter hatasina yol acacaktir. O yüzden config.php üzerinden db charset'i degistirmeyin.
Cevapla
Bunu Beğenenler: BlackCat , S.G , 007combatant

Çevrimdışı 007combatant
 Tarih: 07-05-2013, Saat:20:32
#6
Dosya güncellendi.
Tasarım yapıldı.
Cevapla
Bunu Beğenenler: Screwy , SvMedeT

İzinli Screwy
 Tarih: 07-05-2013, Saat:20:44
#7
Başka sistemlerden mybb'e geçiş yaparken Türkçe karakter sorunu yaşayanlar içinde bir eklenti gibi birşey yapılabilir mi peki bu konu üzerinden ?
Cevapla
Bunu Beğenenler:

İzinli NmDahmeT
 Tarih: 01-09-2013, Saat:16:00
#8
(07-05-2013, Saat:01:36)EmreKarakaya Adlı Kullanıcıdan Alıntı: işte MyBBDepo farkı. Bizi izlemeye devam edin...
Cevapla
Bunu Beğenenler:

 




Konuyu Okuyanlar: 1 Ziyaretçi