Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menetapkan Pengekodan Aksara dengan Betul untuk Sambungan MySQL PDO?

Bagaimana untuk Menetapkan Pengekodan Aksara dengan Betul untuk Sambungan MySQL PDO?

Linda Hamilton
Lepaskan: 2025-01-04 08:23:35
asal
836 orang telah melayarinya

How to Properly Set Character Encoding for PDO MySQL Connections?

Pengendalian Pengekodan Aksara Sambungan PDO

Apabila membuat sambungan MySQL menggunakan sambungan PDO (Objek Data PHP), pengekodan aksara yang betul adalah penting untuk memastikan integriti data dan operasi yang betul. Mari terokai cara menetapkan pengekodan aksara untuk sambungan PDO.

Dalam sambungan mysql_* tradisional yang digunakan dalam kod anda sebelum ini:

mysql_set_charset("utf8",$link);
mysql_query("SET NAMES 'UTF8'");
Salin selepas log masuk

Arahan ini menetapkan pengekodan aksara untuk sambungan. Walau bagaimanapun, dengan PDO, pendekatannya berbeza.

Untuk menetapkan pengekodan aksara bagi sambungan PDO, anda boleh menentukannya dalam rentetan sambungan itu sendiri. Contohnya:

$connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
Salin selepas log masuk

Rentetan ini menambahkan pilihan charset pada rentetan sambungan, menyatakan pengekodan yang diingini, dalam kes ini, "utf8mb4". Menggunakan kaedah ini menetapkan pengekodan apabila sambungan diwujudkan.

Versi PHP Lama

Walau bagaimanapun, jika anda menggunakan versi PHP sebelum 5.3.6, charset pilihan dalam rentetan sambungan diabaikan. Dalam kes ini, anda mesti menggunakan kaedah ganti:

$dbh = new PDO("mysql:host=$host;dbname=$db",  $user, $password);
$dbh->exec("set names utf8mb4");
Salin selepas log masuk

Di sini, sambungan diwujudkan tanpa menyatakan pengekodan, dan kaedah exec() digunakan untuk melaksanakan pertanyaan SQL untuk menetapkan pengekodan aksara selepas sambungan diwujudkan.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Pengekodan Aksara dengan Betul untuk Sambungan MySQL PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan