sql >> Databasteknik >  >> RDS >> Mysql

PHP/PDO/MySQL:infogning i MEDIUMBLOB lagrar dålig data

Jag tror inte att detta måste vara en bugg. Jag kan föreställa mig att när klienten pratar med servern och säger att följande kommando är i UTF-8 och servern behöver det i Latin-1, så kan frågan omkodas innan analys och exekvering. Så detta är en kodningsfråga för transporten av data. Eftersom hela frågan före analys kommer att påverkas av denna omkodning, kommer binära data för BLOB-kolumnen också att ändras.

Från Mysql-manualen:

Eller på vägen tillbaka:Latin1-data från butiken kommer att konverteras till UTF-8 eftersom klienten sa till servern att den föredrar UTF-8 för transporten.

Identifieraren för PDO själv du namnger ser ut att vara något helt annat:

Jag är ingen MySQL-expert men jag skulle förklara det så här. Klienten och servern måste förhandla om vilka teckenuppsättningar de använder och jag antar att de gör detta av en anledning.




  1. Kan jag använda en PDO-förberedd sats för att binda en identifierare (ett tabell- eller fältnamn) eller ett syntaxnyckelord?

  2. Unitils och DBMaintainer - hur får man dem att fungera med flera användare/scheman?

  3. Hur installerar jag MySQLdb-paketet? (ImportError:Ingen modul med namnet setuptools)

  4. SQL koppla 2 tabeller till 1 tabell