PHP MySQL - 不考虑Charset

时间:2012-04-25 10:43:32

标签: php mysql character-encoding

我有一个php文件,使用pdo将数据插入mysql数据库。当我尝试在我的一个表中的字段中插入单词référencé时,它在mysql中显示为référencé
我没有得到它,因为我指定了一点点字符集作为utf-8。见下文。

  1. 我的桌子设置为innodb utf-8
  2. 我的字段设置为utf8_general_ci
  3. 在我的php脚本的顶部我放了 一个。 header('Content-Type: text/html; charset=utf-8');
    mysql_set_charset('utf8');
    C。 mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
  4. 下面是我的pdo连接函数:

    function connexion($host, $user, $pass, $db){
        $db_host = $host;  
        $db_user = $user;  
        $db_password = $pass;  
        $db_database = $db;               
        return $connexion = new PDO("mysql:host=$db_host;dbname=$db_database", $db_user, $db_password);
    }
    

    希望有人能帮助我理解。先感谢您。干杯。马克

1 个答案:

答案 0 :(得分:2)

好吧,显然你没有为你的PDO连接设置连接编码。这样做:

return new PDO("mysql:host=$db_host;dbname=$db_database",
               $db_user,
               $db_password,
               array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

请参阅http://php.net/manual/en/ref.pdo-mysql.connection.php