0

pdoを使用してmysql dbにデータを挿入するphpファイルがあります。référencéテーブルの1つのフィールドに単語を挿入しようとするとréférencé
、文字セットをどこでもutf-8として指定したため、取得できないようにmysqlに表示されます。下記参照。

  1. 私のテーブルは innodb utf-8 に設定されています
  2. 私のフィールドは utf8_general_ci に設定されています
  3. 私のphpスクリプトの一番上に私は
    a. header('Content-Type: text/html; charset=utf-8');
    b. 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 に答える