Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP/PDO/MySQL:wstawienie do MEDIUMBLOB przechowuje złe dane

Nie sądzę, że to musi być błąd. Mogę sobie wyobrazić, że za każdym razem, gdy klient rozmawia z serwerem i mówi, że następujące polecenie jest w UTF-8, a serwer potrzebuje go w Latin-1, zapytanie może zostać ponownie zakodowane przed analizowaniem i wykonaniem. Jest to więc problem z kodowaniem do transportu danych. Ponieważ całe zapytanie przed parsowaniem zostanie poddane ponownemu kodowaniu, dane binarne dla kolumny BLOB również ulegną zmianie.

Z podręcznika Mysql:

Lub w drodze powrotnej:dane Latin1 ze sklepu zostaną przekonwertowane na UTF-8, ponieważ klient powiedział serwerowi, że woli UTF-8 do transportu.

Identyfikator samego PDO, który nazwałeś, wygląda na coś zupełnie innego:

Nie jestem ekspertem MySQL, ale wyjaśniłbym to w ten sposób. Klient i serwer muszą negocjować, jakich zestawów znaków używają i zakładam, że robią to z jakiegoś powodu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz się z serwerem MySQL przez SSH w PHP

  2. Kroki instalacji Mysql56 na linuksie

  3. Podzapytania z EXISTS vs IN - MySQL

  4. Importuj pliki .frm i .opt do MySQL

  5. PHP Podczas gdy pętla wyświetla tylko ostatni wiersz