Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP/PDO/MySQL:inserir no MEDIUMBLOB armazena dados incorretos


Eu não acho que isso deve ser um bug. Posso imaginar que sempre que o cliente fala com o servidor e diz que o seguinte comando está em UTF-8 e o servidor precisa dele em Latin-1, a consulta pode ser recodificado antes da análise e execução. Portanto, este é um problema de codificação para o transporte dos dados. Como toda a análise anterior da consulta será influenciada por essa recodificação, os dados binários da coluna BLOB também serão alterados.

Do manual do Mysql:

Ou no caminho de volta:os dados Latin1 da loja serão convertidos em UTF-8 porque o cliente disse ao servidor que prefere UTF-8 para o transporte.

O identificador do próprio PDO que você nomeia parece ser algo totalmente diferente:

Não sou especialista em MySQL, mas explicaria dessa maneira. Cliente e servidor precisam negociar quais charsets estão usando e presumo que façam isso por um motivo.