Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menyelesaikan data Cina yang kacau ditambah oleh sisipan php

Bagaimana untuk menyelesaikan data Cina yang kacau ditambah oleh sisipan php

PHPz
Lepaskan: 2023-04-04 20:08:01
asal
864 orang telah melayarinya

Apabila menggunakan PHP untuk pembangunan pangkalan data, kita selalunya perlu menggunakan pernyataan SQL untuk memasukkan data. Walau bagaimanapun, kadangkala apabila memasukkan data bahasa Cina ke dalam pangkalan data, aksara yang bercelaru akan muncul Artikel ini akan memperkenalkan cara menyelesaikan masalah ini.

  1. Semak pengekodan pangkalan data

Pertama, kita perlu menyemak pengekodan pangkalan data. Dalam MySQL, anda boleh menyemak kaedah pengekodan pangkalan data melalui pernyataan SQL berikut:

SHOW VARIABLES LIKE 'character_set_database';
Salin selepas log masuk

Jika hasil output ialah utf8 atau utf8mb4, kaedah pengekodan lalai pangkalan data ialah UTF-8. Jika keputusan output berada dalam pengekodan lain, anda perlu menentukan set aksara yang sepadan apabila menggunakan pernyataan INSERT.

  1. Tetapkan kaedah pengekodan PHP

Dalam PHP, anda boleh menggunakan pernyataan berikut untuk menetapkan kaedah pengekodan:

mysqli_set_charset($mysqli, 'utf8');
Salin selepas log masuk

Di mana, $mysqli ialah objek mysqli yang disambungkan ke pangkalan data. Menetapkan kaedah pengekodan kepada UTF-8 boleh memastikan bahawa aksara yang bercelaru tidak akan muncul apabila memasukkan data Cina ke dalam pangkalan data.

  1. Nyatakan set aksara dalam pernyataan SQL

Jika kedua-dua kaedah di atas tidak dapat menyelesaikan masalah bercelaru, maka kita perlu menentukan set aksara dalam INSERT kenyataan. Contohnya:

INSERT INTO `table_name` (`column1`, `column2`, ...) VALUES (N'中文', 'English', ...)
Salin selepas log masuk

Dalam pernyataan SQL, gunakan N'' untuk menukar rentetan Cina kepada pengekodan Unikod untuk memastikan rentetan Cina tidak akan bercelaru.

  1. Gunakan pernyataan yang disediakan

Akhir sekali, untuk mengelakkan serangan suntikan SQL dan meningkatkan kebolehgunaan semula kod, kami mengesyorkan anda menggunakan pernyataan yang disediakan. Pernyataan yang disediakan boleh dibuat melalui objek mysqli atau PDO, dan kemudian nyatakan kaedah pengekodan semasa menetapkan parameter, contohnya:

$stmt = $mysqli->prepare("INSERT INTO `table_name` (`column1`, `column2`, ...) VALUES (?, ?, ...)");
$stmt->bind_param("ss", $val1, $val2, ...);
$stmt->execute();
Salin selepas log masuk

Dalam contoh ini, apabila menetapkan parameter menggunakan kaedah bind_param, tetapkan set aksara kepada ' ss', yang bermaksud parameter adalah jenis rentetan dan set aksara ialah UTF-8.

Ringkasan

Artikel ini memperkenalkan beberapa kaedah untuk menyelesaikan masalah menambah aksara Cina yang kacau dalam PHP INSERT SQL, termasuk menyemak pengekodan pangkalan data, menetapkan kaedah pengekodan PHP, menyatakan set aksara dalam Pernyataan SQL dan menggunakan pernyataan prapemprosesan. Semasa proses pembangunan, kita harus memilih kaedah yang sesuai mengikut situasi sebenar dan mengikut piawaian pengekodan untuk memastikan kebolehbacaan dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan data Cina yang kacau ditambah oleh sisipan php. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan