Итак, я действительно новичок в PDO , и я попробовал кое-что и попрактиковался в этом, и случилось, что я действительно запутался в том, что происходит с моей базой данных, когда я пытаюсь вставитьнекоторые специальные символы с этим кодом ниже:
<?php
$post_cat = 4;
$post_title = "TESTING";
$post_author = "Test";
$post_image = "test_image.png";
$post_content = "“Luo Changan, I grant you five breaths’ time. Show me whether you’re actually such a ‘person’ as you say, or a dog that would ‘beg to surrender!’”";
$post_tags = "novel, mga, chinese novel";
$ID_post_stat = 2;
$pdo = new PDO("mysql:charset=utf8mb4;hostname=localhost;dbname=cms;", "root", "");
$stmt = $pdo->prepare('INSERT INTO posts (ID_post_category, post_title, post_author, post_image, post_content, post_tags, ID_post_status) VALUES (?, ?, ?, ?, ?, ?, ?)');
$stmt->bindParam(1, $post_cat);
$stmt->bindParam(2, $post_title);
$stmt->bindParam(3, $post_author);
$stmt->bindParam(4, $post_image);
$stmt->bindParam(5, $post_content);
$stmt->bindParam(6, $post_tags);
$stmt->bindParam(7, $ID_post_stat);
$stmt->execute();
/* data stored:
+------------------+------------+-------------+----------------+-----------------------------------------+---------------------------+----------------+
| ID_post_category | post_title | post_author | post_image | post_content | post_tags | ID_post_status |
+------------------+------------+-------------+----------------+-----------------------------------------+---------------------------+----------------+
| 4 | TESTING | Test | test_image.png | ?Luo Changan, I grant you five breaths? | novel, mga, chinese novel | 2 |
| | | | | time. Show me whether you?re actually | | |
| | | | | such a ?person? as you say, or a dog | | |
| | | | | that would ?beg to surrender!?? | | |
+------------------+------------+-------------+----------------+-----------------------------------------+---------------------------+----------------+
*/
?>
Я искал ответы для , почему эти символы ( "''" ) не хранятся в базе данныхи вместо этого вместо (? ) я попытался изменить таблицу и столбец на UTF8, так как я прочитал некоторые ответы от сообщества, но, похоже, это не имеет значения, он отлично работает с(хотя) хотя.Заранее спасибо!
, как предложил Мадхур Бхайя, я снова попытался проверить его кодировку, даже применил charset=utf8mb4
к своему DSN PDO, что мне очень помогло вместо использования utf8_decode
или utf8_encode
для каждой строки, и она действительно уже установлена в UTF8, так что я думаю, что символы такого типа, такие как фигурные кавычки, не поддерживаются для этой кодировки, тогда как я могу решить эту проблему?