Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP/PDO/MySQL:вмъкването в MEDIUMBLOB съхранява лоши данни

Не мисля, че това трябва да е грешка. Мога да си представя, че всеки път, когато клиентът говори със сървъра и каже, че следната команда е в UTF-8 и сървърът се нуждае от нея на Latin-1, тогава заявката може да бъде повторно кодирана преди синтактичен анализ и изпълнение. Така че това е проблем с кодирането за транспортирането на данните. Тъй като цялата заявка преди синтактичен анализ ще бъде повлияна от това повторно кодиране, двоичните данни за колоната BLOB също ще бъдат променени.

От ръководството за Mysql:

Или на връщане:данните на Latin1 от магазина ще бъдат преобразувани в UTF-8, защото клиентът каза на сървъра, че предпочита UTF-8 за транспортиране.

Самият идентификатор за PDO, който назовавате, изглежда като нещо съвсем различно:

Не съм експерт по MySQL, но бих го обяснил по този начин. Клиентът и сървърът трябва да договорят кои набори от знаци използват и предполагам, че правят това по някаква причина.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Припокриваща се заявка за резервация

  2. Как да закръгля разликата между две дати до часове

  3. Прекомерна MySQL активност

  4. PHP открива опит за SQL инжекция

  5. Проектиране на събития за дата и час, които не се припокриват