Rumah >pangkalan data >tutorial mysql >PDO dan MySQL: Patutkah Saya Tetapkan Charset dalam Rentetan Sambungan atau Gunakan `SET NAMA`?
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!