Bagaimana untuk melarikan diri petikan tunggal dalam PHP untuk sisipan MySQL?

DDD
Lepaskan: 2024-11-02 00:49:30
asal
897 orang telah melayarinya

How to Escape Single Quotes in PHP for MySQL Insertion?

Melepaskan Petikan Tunggal dalam PHP untuk Penyelitan MySQL

Ralat MySQL boleh timbul apabila memasukkan data yang mengandungi petikan tunggal (') ke dalam pangkalan data. Untuk menyelesaikan isu ini, adalah penting untuk melepaskan petikan tunggal menggunakan teknik yang sesuai.

Dalam coretan kod anda, anda menggunakan dua pertanyaan INSERT untuk menambah data borang pada pangkalan data anda:

<code class="php">INSERT INTO job_log ...
VALUES
(...)</code>
Salin selepas log masuk
<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>
Salin selepas log masuk
Salin selepas log masuk

Pertanyaan 1:

Pertanyaan pertama berfungsi dengan betul tanpa melepaskan petikan tunggal kerana anda berkemungkinan menggunakan magic_quotes_gpc, yang melepaskan rentetan daripada pembolehubah GET, POST dan COOKIE.

Pertanyaan 2:

Pertanyaan kedua gagal apabila rentetan mengandungi petikan tunggal, seperti "O'Brien". Tidak seperti pertanyaan pertama, rentetan dalam pertanyaan kedua tidak dilepaskan.

Untuk mengelakkan isu ini, anda harus menggunakan mysql_real_escape_string() untuk melepaskan rentetan sebelum memasukkannya ke dalam pangkalan data. Ini akan menambah garis miring ke belakang () sebelum petikan tunggal:

<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>
Salin selepas log masuk
Salin selepas log masuk

Contohnya:

<code class="php">$escapedString = mysql_real_escape_string("O'Brien");
$query = mysql_query("INSERT INTO message_log ... VALUES ('$escapedString', ...");</code>
Salin selepas log masuk

Escaping Strings:

Adalah amalan yang baik untuk sentiasa melarikan diri daripada rentetan sebelum memasukkannya ke dalam pangkalan data, walaupun anda tidak mengalami ralat. Ini menghalang serangan suntikan SQL dan memastikan integriti data. Dalam PHP, anda boleh menggunakan mysql_real_escape_string() atau kaedah bindParam() perpustakaan PDO untuk melepaskan rentetan dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk melarikan diri petikan tunggal dalam PHP untuk sisipan MySQL?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!