Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Melarikan Diri Petikan Tunggal dalam PHP Hanya Mempengaruhi Sisipan MySQL Kadangkala?

Mengapa Melarikan Diri Petikan Tunggal dalam PHP Hanya Mempengaruhi Sisipan MySQL Kadangkala?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 11:55:29743semak imbas

Why Does Escaping Single Quotes in PHP Only Affect MySQL Inserts Sometimes?

Melepaskan Petikan Tunggal dalam PHP Apabila Memasukkan ke MySQL

Artikel ini menangani isu melarikan petikan tunggal dalam PHP apabila memasukkan data ke dalam MySQL.

Kod yang disediakan menunjukkan dua pernyataan SQL: satu untuk memasukkan data borang ke dalam pangkalan data dan satu lagi untuk mendapatkan semula data, menghantar e-mel dan mengelog butiran transaksi. Ralat berlaku apabila petikan tunggal hadir dalam penyataan kedua, tetapi bukan dalam pernyataan pertama.

Perbezaan dalam tingkah laku berpunca daripada potensi magic_quotes_gpc didayakan. Ciri ini melepaskan rentetan daripada $_GET, $_POST dan $_COOKIES. Apabila data disimpan dan diambil semula, ia mungkin tidak akan terlepas secara automatik.

Untuk menyelesaikan isu ini, anda harus melarikan diri setiap rentetan dalam kedua-dua coretan menggunakan mysql_real_escape_string().

Contoh dengan mysql_real_escape_string():

<code class="php">$order_id = mysql_real_escape_string($order_id);
$supplier_id = mysql_real_escape_string($supplier_id);
...</code>

Melepaskan rentetan sebelum dimasukkan ke dalam MySQL memastikan petikan tunggal dan aksara lain yang berpotensi bermasalah dikendalikan dengan betul, menghalang kelemahan suntikan SQL dan pelaksanaan pertanyaan yang tidak konsisten.

Atas ialah kandungan terperinci Mengapa Melarikan Diri Petikan Tunggal dalam PHP Hanya Mempengaruhi Sisipan MySQL Kadangkala?. 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