0

我有一个使用 pdo 将数据插入 mysql 数据库的 php 文件。当我尝试在我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'");

在我的 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);
}

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

4

1 回答 1

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

于 2012-04-25T10:57:24.410 回答