PHP / Mysql усеченные вставки специальных символов - PullRequest
3 голосов
/ 23 февраля 2012

У меня проблема со вставкой слов со специальными символами в мою базу данных. Слово, кажется, обрезается по специальному символу.

Я использую MySQL 5.1.41, сопоставление в моей базе данных utf8_general_ci. Я использую PDO для облегчения взаимодействия с базой данных.

Вот пример того, что я делаю.

//$db is a PDO object
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
//word with a special character 
$word = "pépite";
$sql = "INSERT INTO keyword(key_name) VALUES(?)";
$stmt = $db->prepare($sql);
$stmt->execute(array($word));

Когда это выполняется, я просто получаю «p» в своей базе данных, кажется, что символ é и все, что после него усекается Я не уверен, что я делаю не так здесь. Если бы кто-то мог предположить, что я делаю неправильно, это было бы очень признательно. Спасибо!

1 Ответ

7 голосов
/ 23 февраля 2012

Попробуйте это

$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
$word = utf8_encode('pépite');
$sql = "INSERT INTO keyword(key_name) VALUES(?)";
$stmt = $db->prepare($sql);
$stmt->execute(array($word));

utf8_encode | utf8_decode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...