sql >> Databáze >  >> RDS >> Mysql

PHP/PDO/MySQL:vkládání do MEDIUMBLOB ukládá špatná data

Nemyslím si, že to musí být chyba. Dokážu si představit, že kdykoli klient mluví se serverem a říká, že následující příkaz je v UTF-8 a server ho potřebuje v Latin-1, pak může být dotaz před analýzou a spuštěním znovu zakódován. Jde tedy o problém s kódováním pro přenos dat. Protože celý dotaz před analýzou bude ovlivněn tímto překódováním, změní se také binární data pro sloupec BLOB.

Z příručky Mysql:

Nebo na cestě zpět:Data Latin1 z obchodu budou převedena do UTF-8, protože klient řekl serveru, že preferuje UTF-8 pro přepravu.

Samotný identifikátor PDO, který pojmenujete, vypadá jako něco úplně jiného:

Nejsem odborník na MySQL, ale vysvětlil bych to takto. Klient a server se musí dohodnout, které znakové sady používají, a předpokládám, že to dělají z nějakého důvodu.




  1. Hierarchická data – model vnořené sady:MySql

  2. CHYBA:neukončený řetězec v uvozovkách na nebo blízko

  3. MySQL:Jak resetovat nebo změnit kořenové heslo MySQL?

  4. Jak by měla být časová razítka unixu uložena ve sloupcích int?