Почему я использую PDO для вставки неанглийского символа, который станет монстром? - PullRequest
0 голосов
/ 27 июля 2011

Это то, что я делаю в php:

$dbhandler = new PDO('mysql:host='.domain.':'.port.';dbname='.dbName.';',db_user,db_password);        

$stmt = $dbhandler->prepare("INSERT INTO ".myTable.
" (value) VALUES (:value)");
$stmt->bindValue(':value', "試打中文");

$stmt->execute();

Вот что я получаю через phpMyAdmin:

試打中文

Но я могу вручную вставить китайский язык в phpMyAdmin, и он показывает монстру char ... Что я сделал не так? (Поле сортировки таблицы: utf8_unicode_ci).

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Измените свой код на:

$dbhandler = new PDO('mysql:host='.domain.':'.port.';dbname='.dbName.';',db_user,db_password, array(
  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
));
0 голосов
/ 27 июля 2011

Попробуйте также выполнить:

SET NAMES utf8;
SET CHARACTER_SET utf8;

В качестве запросов после подключения к базе данных.

...