Rumah >pangkalan data >tutorial mysql >PDO dan MySQL: Patutkah Saya Tetapkan Charset dalam Rentetan Sambungan atau Gunakan `SET NAMA`?

PDO dan MySQL: Patutkah Saya Tetapkan Charset dalam Rentetan Sambungan atau Gunakan `SET NAMA`?

Susan Sarandon
Susan Sarandonasal
2024-12-18 14:12:13945semak imbas

PDO and MySQL: Should I Set the Charset in the Connection String or Use `SET NAMES`?

PDO: Adakah Saya Perlu Tetapkan Charset dan Set Nama?

Dulu, apabila menggunakan fungsi mysql_*, ia adalah perlu untuk menetapkan charset dan laksanakan pertanyaan SET NAMES untuk memastikan pengekodan aksara yang betul. Prinsip yang sama digunakan untuk sambungan PDO.

Pilihan PDO

Untuk sambungan PDO, anda boleh menentukan charset sebagai sebahagian daripada rentetan sambungan:

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

Pra-PHP 5.3.6

Jika anda menggunakan PHP sebelum versi 5.3.6, pilihan charset diabaikan. Untuk menetapkan charset dalam kes ini, anda mesti menggunakan kaedah exec() PDO:

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

Dengan menetapkan set charset, anda memastikan aplikasi anda berkomunikasi dengan pangkalan data menggunakan pengekodan aksara yang betul, mengelakkan rasuah data dan isu paparan.

Atas ialah kandungan terperinci PDO dan MySQL: Patutkah Saya Tetapkan Charset dalam Rentetan Sambungan atau Gunakan `SET NAMA`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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