Membetulkan Ralat "Nilai Rentetan Tidak Betul" dalam MySQL
Latar Belakang:
Walaupun mengkonfigurasi teks lajur dengan set aksara dan pengumpulan UTF-8, alamat e-mel tertentu terus mencetuskan "Nilai rentetan yang salah" kesilapan. Artikel ini meneroka punca ralat ini dan menyediakan penyelesaian.
Punca:
Mesej ralat mencadangkan bahawa alamat e-mel yang terjejas mengandungi aksara yang tidak disokong oleh aksara semasa tetapkan konfigurasi. Walaupun UTF-8 secara amnya permisif, sesetengah jujukan aksara mungkin melebihi hadnya.
Penyelesaian:
Semak Sambungan Pangkalan Data: Selepas mewujudkan sambungan MySQL, laksanakan pernyataan SQL berikut:
SET NAMES 'utf8mb4'; SET CHARACTER SET utf8mb4;
Ini menetapkan set aksara dan pengumpulan untuk sambungan semasa ke UTF-8 dengan empat bait setiap aksara (utf8mb4).
Sahkan Set Aksara Jadual: Untuk jadual yang mengandungi alamat e-mel yang terjejas, jalankan pertanyaan berikut untuk menyemak set aksara:
SELECT `tables`.`TABLE_NAME`, `collations`.`character_set_name` FROM `information_schema`.`TABLES` AS `tables`, `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations` WHERE `tables`.`table_schema` = DATABASE() AND `collations`.`collation_name` = `tables`.`table_collation` ;
Pastikan set aksara ditetapkan kepada utf8mb4.
Semak Tetapan Pangkalan Data: Jalankan pernyataan MySQL berikut untuk mengesahkan set aksara global dan tetapan pengumpulan:
mysql> show variables like '%colla%'; mysql> show variables like '%charac%';
Pastikan bahawa kedua-dua set aksara dan penyusunan ditetapkan kepada utf8mb4.
Kesan Pembetulan:
Menggunakan utf8mb4 meningkatkan julat aksara yang disokong dan menghapuskan ralat "Nilai rentetan yang salah" untuk alamat e-mel dengan aksara lanjutan. Ia juga boleh meningkatkan keserasian pangkalan data dengan data antarabangsa dan piawaian Unikod masa hadapan.
Atas ialah kandungan terperinci Mengapa Saya Masih Mendapat Ralat 'Nilai Rentetan Tidak Betul' dalam Pangkalan Data MySQL UTF-8 Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!