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

Bagaimana cara menentukan susunan dengan PDO tanpa NAMA SET?

Ini adalah jawaban dua dalam satu.

Anda dapat mengatur ini di DSN atau sebagai MYSQL_ATTR_INIT_COMMAND (opsi koneksi).

DSN lebih baik, menurut saya.

$connect = new PDO(
  "mysql:host=$host;dbname=$db;charset=utf8", 
  $user, 
  $pass, 
  array(
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
  )
); 

Jika Anda menentukan UTF-8 Anda bekerja dengan susunan default utf8_general_ci , kecuali tabel atau bidang db Anda menggunakan sesuatu yang berbeda.

Jika Anda ingin seluruh server merespons dengan susunan default ini, gunakan arahan konfigurasi:

collation_server=utf8_unicode_ci 
character_set_server=utf8

Jadi, Anda tidak perlu menentukannya saat koneksi setiap saat.

Susunan mempengaruhi pengurutan karakter dan diatur pada tabel dan bidang dalam database Anda. Pengaturan ini diterapkan, saat membuat kueri tabel. Pastikan mereka disetel. Gunakan nama UTF-8 dengan susunan yang disetel di db Anda.

Komentar Anda:

Mari Mengutip dari Manual MySQL untuk membuktikan ini:

Jawaban saya:Ini bekerja secara implisit, kecuali tabel Anda mengubahnya secara eksplisit.

Pertanyaan dari komentar:

Contoh:Susunan kolom menggantikan susunan tabel

CREATE TABLE t1
(
    col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci
) CHARACTER SET latin1 COLLATE latin1_bin;

Jika CHARACTER SET X dan COLLATE Y ditentukan pada kolom, character set X dan collation Y digunakan. Kolom memiliki kumpulan karakter utf8 dan susunan utf8_unicode_ci sebagaimana ditentukan dalam kolom tabel, sedangkan tabel dalam latin1 + latin1_bin.

Contoh:secara umum digunakan susunan tabel

Jika susunan tidak secara eksplisit ditentukan pada kolom/Field, maka susunan tabel digunakan:

CREATE TABLE t1
(
    col1 CHAR(10)
) CHARACTER SET latin1 COLLATE latin1_bin;

col1 memiliki collation latin1_bin.

Jika Anda ingin utf8_unicode_ci susunan, atur ke tabel Anda secara umum atau ke kolom/bidang.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyimpan pesanan?

  2. Apa cara terbaik untuk mengakses database dari PHP?

  3. Cara mengatur zona waktu database untuk instans AWS RDS

  4. Perbedaan MySQL antara e dan é (e akut) - indeks UNIK

  5. Kueri Pilih CodeIgniter