Membetulkan Pengekodan UTF-8 Rusak dengan PDO dan MySQL
Apabila menggunakan PDO dengan pangkalan data MySQL dalam PHP, memasukkan data yang dikodkan UTF-8 selalunya mengakibatkan aksara bercelaru atau tanda soal dalam pangkalan data. Ini boleh menjadi isu yang mengecewakan, terutamanya apabila berurusan dengan bahasa seperti bahasa Arab.
Untuk menyelesaikan isu ini, cuma tetapkan sambungan MySQL untuk menggunakan pengekodan UTF-8 dari awal. Begini cara anda boleh melakukannya:
Kod PHP:
<code class="php">$pdo = new PDO( 'mysql:host=hostname;dbname=defaultDbName', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") );</code>
Amaran: Penyelesaian ini hanya terpakai untuk PHP versi 5.3.5 dan di bawah. Untuk PHP versi 5.3.6 dan kemudian, rujuk jawapan alternatif yang disediakan pada urutan asal.
Dengan menetapkan arahan awal kepada "SET NAMA utf8", PDO menghantar pertanyaan ini secara automatik kepada pelayan selepas membuat sambungan, memastikan bahawa semua pertanyaan berikutnya menggunakan pengekodan UTF-8. Ini menghapuskan keperluan untuk pertanyaan SET NAMES atau SET CHARACTER SET tambahan selepas membuat sambungan.
Atas ialah kandungan terperinci Bagaimana untuk Memperbaiki Pengekodan UTF-8 Patah dengan PDO dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!