sql >> Database >  >> RDS >> Mysql

PHP/PDO/MySQL:invoegen in MEDIUMBLOB slaat slechte gegevens op

Ik denk niet dat dit een bug moet zijn. Ik kan me voorstellen dat wanneer de client met de server praat en zegt dat het volgende commando in UTF-8 staat en de server het in Latin-1 nodig heeft, de query opnieuw gecodeerd kan worden voorafgaand aan het parseren en uitvoeren. Dit is dus een coderingsprobleem voor het transport van de gegevens. Aangezien de hele query voorafgaand aan het parseren wordt beïnvloed door deze hercodering, worden ook de binaire gegevens voor de BLOB-kolom gewijzigd.

Uit de Mysql-handleiding:

Of op de terugweg:Latin1-gegevens uit de winkel worden omgezet in UTF-8 omdat de client de server heeft verteld dat hij UTF-8 verkiest voor het transport.

De identifier voor PDO zelf die je noemt, ziet eruit alsof het iets heel anders is:

Ik ben geen MySQL-expert, maar ik zou het zo uitleggen. Client en server moeten onderhandelen over welke tekensets ze gebruiken en ik neem aan dat ze dit met een reden doen.




  1. Een probleem hebben om mysqli_query uit te voeren

  2. Hoe PERIOD_ADD() werkt in MariaDB

  3. SQL-query om de primaire sleutel van een tabel te vinden?

  4. Overschrijft MySQL een kolom met dezelfde waarde bij update?