2012-07-13 18 views
9

Mysqli ve tüm hakkında daha fazla bilgi edinme yolundayım Bu heyecan verici şeyler ama çok yakında bloke olurum.mysql bir 'karakter kümesini başlatamadı utf-8 (yol:/usr/share/mysql/charsets /)' hatası, yok utf8.xml dosyası yok

Debian kutumda yerel bir sunucum var. Bu güncel, php ve mysql yüklü ve sorunsuz çalışıyor. Ben mysqli daha biraz bilgi edinmek isteyen edildi ve ben aşağıdaki kodu çalışırken:

Ben
<?php 

$db = new mysqli('localhost', 'userdb', 'pwuserdb', 'db'); 

if(!$db->set_charset('utf-8')) { 
    printf("Error setting the character set utf-8: %s\n", $db->error); 
} else { 
    printf("Current character set is: %s\n", $db->character_set_name()); 
} 

print_r($db->get_charset()); 

?> 

, benim için sürpriz, aşağıdaki iletiyi alıyorum, sayfasını ziyaret: Error setting the character set utf-8: Can't initialize character set utf-8 (path: /usr/share/mysql/charsets/) stdClass Object ([charset] => latin1 [collation] => latin1_swedish_ci [dir] => [min_length] => 1 [max_length] => 1 [number] => 8 [state] => 801 [comment] => cp1252 West European)

ben

[mysqld]

için: Ben my.cnf dosyasında aşağıdaki ayarlarla tamamladı yüzden mysql'in standart charset utf-8 kurmak vermedi gibi mantıklı olduğunu kendime düşündüm

[client]

default-character-set=utf8 

için ben de komut satırından mysql giriş yapmış ve ALTER DATABASE db CHARSET=utf8;

Ben de yeniden komut satırından mysql yanı sıra apache koştu. şeyler mysql oluyor nasıl ararken , neredeyse her şey yolunda görünüyor: Ama nedeniyle utf8 dosyasını bulamaz mysql gibi görünüyor olması nedeniyle, ben /usr/share/mysql/charsets/ klasörde bir utf8.xml dosya için kontrol

mysql> SHOW VARIABLES LIKE 'character_set%'; 
+--------------------------+----------------------------+ 
| Variable_name   | Value      | 
+--------------------------+----------------------------+ 
| character_set_client  | utf8      | 
| character_set_connection | utf8      | 
| character_set_database | utf8      | 
| character_set_filesystem | binary      | 
| character_set_results | utf8      | 
| character_set_server  | utf8      | 
| character_set_system  | utf8      | 
| character_sets_dir  | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.00 sec) 

ve biri yok. Bu dizinin altındaki Index.xml dosyasında, utf8 'in belirtildiği gibi, charsets listesinde ancak xml dosyasının dizinde eksik olmasından kaynaklanıyor.

Sadece bilgi için, sistem yerel ayarlarım UTF8 (en ve pl) ve bu dizinde veya içeriğiyle dolanmıyormuş gibi utf8.xml dosyasının neden dizinde olmadığını anlamıyorum. hiç

Herhangi bir fikir/öneri/öneri memnuniyetle karşılanır.

şimdiden teşekkür ederiz!

Şerefe!

cevap

18

Eğer çizgi olmadan

if(!$db->set_charset('utf8')) { 

denedin mi?

Sisteminizde yaptığınız tüm araştırmalar, utf-8 yerine utf8 'i işaret ettiğinden;

+0

O kadardı! Çok teşekkür ederim! –

İlgili konular