Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PHP/PDO/MySQL:memasukkan ke MEDIUMBLOB menyimpan data yang buruk

Saya tidak berpikir bahwa ini pasti bug. Saya dapat membayangkan bahwa setiap kali klien berbicara dengan server dan mengatakan bahwa perintah berikut ada dalam UTF-8 dan server membutuhkannya dalam bahasa Latin-1, maka kueri mungkin dikodekan ulang sebelum penguraian dan eksekusi. Jadi ini adalah masalah pengkodean untuk transportasi data. Karena seluruh kueri sebelum penguraian akan dipengaruhi oleh pengkodean ulang ini, data biner untuk kolom BLOB juga akan berubah.

Dari manual Mysql:

Atau dalam perjalanan kembali:Data Latin1 dari penyimpanan akan diubah menjadi UTF-8 karena klien memberi tahu server bahwa ia lebih memilih UTF-8 untuk transportasi.

Pengidentifikasi untuk PDO itu sendiri yang Anda beri nama tampak seperti sesuatu yang sama sekali berbeda:

Saya bukan ahli MySQL tetapi saya akan menjelaskannya seperti ini. Klien dan server perlu menegosiasikan rangkaian karakter mana yang mereka gunakan dan saya berasumsi mereka melakukan ini karena suatu alasan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Neo4j - Hapus Hubungan menggunakan Cypher

  2. Dokumentasi tidak jelas mysqldb Python

  3. bind_param() hanya diperlukan pada nilai yang dimasukkan pengguna atau semuanya?

  4. Ganti kata dalam teks BLOB dengan MySQL

  5. Menerapkan twitter dan facebook seperti hashtag