Son 3 gündür kafayı yiyorum kendi kendime :) eski çalıştıgım sunucudan web sitemi şuan vergonen sunucularına transfer etmiş bulunuyorum. Veritabanını aynı şekilde girdigim de türkçe karakterler gözükmemeye basladı. Ne yapsam türkçe karakter desteğini olusturamıyorum suan sitemde. Veritabanına baglantı noktasına giden kodlamalarda şunu koyuyorum
mysql_query("SET NAMES 'latin5'");
ama yine sorunum çözülmüyor.
phpmyadmin sürümü 2.9.0.2 ve mysql sürümü 4.1.14 sql sorgularim latin1_swedish_ci
türkçe karakter problemini nasıl gideririm arkadaslar bilginiz varmı?
ya arkadaşlar sql sorgularımıda latin5 yapınca sorun ortadan kalktı ancak eski türkçe karakter olan bilgiler düzelmedi, yeni girilen türkçe karakterler cıkıyor sadece. eski türkçe karakterleri nasıl kurtarıcam bir bilgisi olan varmı ?
bende de bunabenzer bir sorun var arkadaşlar!!
phpmyadminden ve mysql komut satırından sql yedeğini aldığım zaman onu bi txt editor de açtığımda karakterler bozuk çıkıyor. başka bir host'a attığımda da bozuk çıkıyor!!
ancak phpbb ile yedek aldığımda sql i txt ile açınca ve başka bir hosting'e atınca sql de tüm karakterler düzgün görünüyor!!
budurumda aklıma phpbb yedek alırken türkçe karakterlerin görülmesi için extra bir komut saturı ekliyor bende bu şekilde myqsl komut satırından karakterleri düzgün çıkartacak çekilde sql yedeği alabilir miyim acaba?
olarak denediğimde ise ekrana bütün sql'i sayfa sayfa açıyor en sonunda da
/*!40000 ALTER TABLE `phpbb_search_wordlist` ENABLE KEYS */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
yazıyor..
bu konuda yardım ederseniz çok iyi olur database yedekleyemiyorum arkadaşlar!! eskiden böyle yapmıyordu en azından kendi içerisinde bir database den diğerine atabiliyordum verileri!
phpmyadmin den sql sorgusu çalıştırırken utf8 olarak yükle latin5 değil.
quote:
Orjinalden alıntı: agoraseo
phpmyadmin den sql sorgusu çalıştırırken utf8 olarak yükle latin5 değil.
MySQL çıktısı: Yardım #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1' at line 25
böyle bir sorunla karşılaşında latin1 leri latin5 yazpın düzelir dediler yaptım olmadı.ENGINE = MYISAM DEFAULT CHARSET = latin1 yazan kısımları sil dediler yine olmadı.yok mudur şöyle bi babayiğit çıksa da sorunumuza bi çözüm bulsa.
: : ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Eğer latin1 desteği ile olacaksa, alt-dil kümesini seçmende fayda var..
örn. Türkçe karakter seti ile : CREATE TABLE `categories` ( `cId` MEDIUMINT(9) NOT NULL AUTO_INCREMENT, `cName` VARCHAR(200) NOT NULL, `cOrder` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `cVisible` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1, PRIMARY KEY(`cId`) ) ENGINE = MYISAM CHARACTER SET latin5 COLLATE latin5_turkish_ci;
denemeni öneririm.. Bildiğim kadarıyla, dil kümesini seçmek yetmiyor; "collating sequence" (Türkçe'si sıralama mı oluyor bilmiyorum) bunun da seçilmesi gerekiyor.
CREATE TABLE `categories` ( `cId` mediumint( 9 ) NOT NULL AUTO_INCREMENT , `cName` varchar( 200 ) NOT NULL default '', `cOrder` bigint( 20 ) NOT NULL default '0', `cVisible` tinyint( 1 ) NOT NULL default '1', UNIQUE KEY `cId` ( `cId` ) ) CHARACTER SET latin5 COLLATE latin5_turkish_ci
MySQL said: Documentation #1064 - You have an error in your SQL syntax near 'CHARACTER SET latin5 COLLATE latin5_turkish_ci' at line 25
ı ıh olmadı.başka çözümü olan?
jamie,
Ben MySql 5.1 kullanıyorum. Yukarıda yazdıklarımı, senin verdiğin tanıma uygun üretmeye çalıştım. Bende bir sorun olmadı... Sen hangi Mysql versiyonunu kullanıyorsun; belki versiyon farklılığındandır??
-- Server sürümü: 4.1.18
Tam okunmuyor ama, server sürümü (mysql) 4.1.18 olduğunu varsaydım. Bunun üzerine bir arama yapayım dedim, (google ile : mysql 4.1 create arattım) gelen sayfalarda yararlı bilgiler var bir kaçını yazıyorum. Bir de komutun sonuna noktalı virgül koymayı dene..
sağolasın ISIS.denedim denedim olmadı.bir ara her ne yaptıysam sql sorgunuz başarılı bir şekilde tamamlandı dedi.ne yaptıgımı inan ben de bilmiyorum.sonra hata çıakran satırlara baktım çalışan sorguda
DROP TABLE IF EXISTS `categories`; CREATE TABLE `categories` ( `cId` mediumint(9) NOT NULL auto_increment, `cName` varchar(200) NOT NULL default '', `cOrder` bigint(20) NOT NULL default '0', `cVisible` tinyint(1) NOT NULL default '1', UNIQUE KEY `cId` (`cId`) ) TYPE=MyISAM;
şeklindeydi.yani bu şekilde sorunsuzca çalışıyor.
ben sonra satırı o şekilde değiştirdiğimi de hatırlamıyorum ama neyse sorun çözüldü.ilgin için de sağol ;)
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme