У меня возникла проблема с вставкой слов со специальными символами в мою базу данных. Слово кажется усеченным у специального персонажа.
Я использую 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» в моей базе данных, кажется, что символ é и все после его усечения. Я не уверен, что я делаю неправильно здесь. Если бы кто-нибудь мог предположить, что я делаю неправильно, это было бы очень оценено. Благодаря!
Попробуй это
$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