Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Melarikan Diri Petikan Tunggal dalam PHP Hanya Mempengaruhi Sisipan MySQL Kadangkala?
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!