Melepaskan Petikan Tunggal dalam PHP untuk Penyelitan MySQL
Apabila memasukkan data ke dalam pangkalan data MySQL daripada PHP, aksara khas seperti petikan tunggal boleh menyebabkan ralat . Untuk mengelakkan ini, adalah penting untuk melepaskan aksara ini sebelum memasukkannya ke dalam pertanyaan.
Isu yang diterangkan dalam soalan timbul kerana data dikumpul dan dimasukkan secara berbeza, bergantung pada asal. Pertanyaan 1 mengumpulkan data secara langsung daripada borang yang diserahkan, yang berpotensi memperkenalkan petikan tunggal yang tidak dapat dielakkan. Dalam Pertanyaan 2, walau bagaimanapun, data pertama kali diekstrak daripada pangkalan data, di mana petikan tunggal mungkin telah dilepaskan jika magic_quotes_gpc didayakan.
Penyelesaian adalah untuk melarikan petikan tunggal secara konsisten dalam kedua-dua pertanyaan menggunakan mysql_real_escape_string(). Fungsi ini melepaskan aksara khas dan memastikan pengendalian petikan tunggal yang betul, walaupun apabila ia muncul dalam data.
Contoh:
<code class="php">$escaped_name = mysql_real_escape_string($name); $query = mysql_query("INSERT INTO message_log (order_id, timestamp, message_type, email_from, supplier_id, primary_contact, secondary_contact, subject, message_content, status) VALUES ('$order_id', '" . date('Y-m-d H:i:s', time()) . "', '$email', '$from', '$row->supplier_id', '$row->primary_email' ,' $row->secondary_email', '$subject', '$escaped_name', '1')");</code>
Dengan melarikan petikan tunggal secara konsisten dalam PHP sebelum memasukkan data ke dalam MySQL , anda boleh menghalang kemungkinan ralat dan memastikan pengendalian data yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri Sebut Harga Tunggal untuk Sisipan MySQL dalam PHP dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!