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

Apakah PDO ... SET NAMES utf8 berbahaya?

Apakah Anda benar-benar masih menggunakan PHP>=versi 3.6 dan <5.3.6 ?

Dengan asumsi Anda memiliki 5.3.6 atau lebih baru...

Kumpulan karakter dan PDO_MYSQL DSN katakan bahwa Anda harus menggunakan

$pdo = new PDO("mysql:host=localhost;dbname=mydb;charset=utf8",
               'my_user', 'my_pass');

Dan menyiratkan (tidak cukup jelas) bahwa utf8 harus diganti dengan utf8mb4 jika sesuai.

PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' tidak sebaik, tetapi merupakan alternatif sebelum 5.3.6.

Saya pikir "berbahaya" adalah kata yang terlalu kuat, bahkan sebelum-5.3.6.

Teknik terkait:Menggunakan init_command = SET NAMES ... di my.cnf buruk karena init_command tidak dieksekusi saat menghubungkan sebagai root .

utf8mb4 adalah CHARACTER SET yang disukai untuk UTF-8 karena menyertakan Emoji dan beberapa karakter Cina yang hilang dari utf8 . Rangkaian karakter tersebut tersedia mulai dari MySQL versi 5.5.3.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mengoptimalkan Query dengan dateiff() di mysql

  2. Apakah ada satu kueri yang dapat memperbarui nomor urut di beberapa grup?

  3. Mendapatkan hasil mysql dari pembaruan item

  4. Kunci dan indeks asing

  5. SQL SELECT dengan hubungan m:n