PHP/Mysql特殊字符插入被截断

The*_*hod 3 php mysql pdo utf-8

我遇到了将带有特殊字符的单词插入数据库的问题.这个词似乎被特殊字符截断了.

我正在使用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));
Run Code Online (Sandbox Code Playgroud)

执行此操作时,我只是在我的数据库中获得"p",它似乎是字符é以及它之后的所有内容都被截断.我不确定我在这里做错了什么.如果有人能够建议我做错了什么,我将非常感激.谢谢!

Jua*_*nma 7

试试这个

$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));
Run Code Online (Sandbox Code Playgroud)

utf8_encode | utf8_decode