Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menyelesaikan masalah data bercelaru yang dimasukkan ke dalam MySQL

Bagaimana untuk menyelesaikan masalah data bercelaru yang dimasukkan ke dalam MySQL

PHPz
PHPzasal
2023-04-20 10:15:142466semak imbas

Aksara bercelaru muncul apabila MySQL memasukkan data, yang merupakan masalah yang akan dihadapi oleh ramai pembangun. Artikel ini akan memperkenalkan punca MySQL bercelaru aksara dan cara menyelesaikan masalah MySQL memasukkan data bercelaru.

  1. Punca aksara bercelaru

MySQL memasukkan data ke dalam aksara bercelaru, terutamanya disebabkan oleh sebab berikut:

(1) Ketidakkonsistenan pengekodan set aksara MySQL

Jika pengekodan set aksara yang digunakan oleh MySQL dan aplikasi tidak konsisten, aksara bercelaru akan berlaku.

(2) Pengekodan set aksara jadual dan medan adalah tidak konsisten

Jika pengekodan set aksara jadual dan medan tidak konsisten, aksara bercelaru akan muncul apabila MySQL memasukkan data.

(3) Pengekodan set aksara lalai MySQL

Pengekodan set aksara lalai MySQL adalah latin1 Jika pengekodan set aksara tidak dinyatakan semasa membuat pangkalan data atau jadual, aksara yang bercelaru akan muncul.

  1. Bagaimana untuk menyelesaikan masalah data bercelaru yang dimasukkan ke dalam MySQL

Untuk menangani masalah di atas, terdapat beberapa penyelesaian:

(1) Ubah suai pengekodan set aksara MySQL

Anda boleh mengubah suai pengekodan set aksara MySQL dengan mengubah suai fail konfigurasi my.cnf MySQL untuk menjadikannya konsisten dengan pengekodan set aksara yang digunakan oleh aplikasi. Contohnya, tambahkan kandungan berikut pada fail konfigurasi my.cnf:

[mysqld]
character-set-server = utf8

Selepas memulakan semula perkhidmatan MySQL, pengekodan set aksara MySQL akan diubah suai kepada utf8.

(2) Ubah suai pengekodan set aksara bagi jadual dan medan

Dengan mengubah suai pengekodan set aksara bagi jadual dan medan, pastikan ia konsisten dengan pengekodan set aksara yang digunakan oleh MySQL dan aplikasi. Contohnya, tukar pengekodan set aksara jadual kepada utf8:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;

Tukar pengekodan set aksara medan kepada utf8:

ALTER TABLE table_name MODIFY field_name VARCHAR(100) CHARACTER SET utf8;

(3) Tentukan aksara lalai pengekodan set MySQL

Pengekodan set aksara boleh ditentukan semasa mencipta pangkalan data atau jadual. Sebagai contoh, nyatakan pengekodan set aksara semasa mencipta pangkalan data:

CREATE DATABASE database_name DEFAULT CHARACTER SET utf8;

Tentukan pengekodan set aksara semasa membuat jadual:

CREATE TABLE table_name (
    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(32) NOT NULL DEFAULT '',
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Menggunakan kaedah di atas, anda boleh menyelesaikan dengan berkesan masalah data bercelaru yang dimasukkan ke dalam soalan MySQL.

Ringkasan

Data yang dimasukkan MySQL bercelaru, yang disebabkan oleh pengekodan set aksara MySQL yang tidak konsisten, pengekodan set aksara yang tidak konsisten bagi jadual dan medan, pengekodan set aksara lalai MySQL, dsb. Untuk menyelesaikan masalah ini, anda boleh mengubah suai pengekodan set aksara MySQL, mengubah suai pengekodan set aksara jadual dan medan, dan menentukan pengekodan set aksara lalai MySQL. Dalam proses pembangunan sebenar, anda perlu memberi perhatian kepada tetapan pengekodan set aksara untuk mengelakkan aksara bercelaru.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah data bercelaru yang dimasukkan ke dalam MySQL. 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