Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memasukkan Rentetan dengan Petikan Tunggal ke dalam MySQL Menggunakan PHP dengan Selamat?

Bagaimanakah Saya Boleh Memasukkan Rentetan dengan Petikan Tunggal ke dalam MySQL Menggunakan PHP dengan Selamat?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 15:59:12588semak imbas

How Can I Safely Insert Strings with Single Quotes into MySQL Using PHP?

Melepaskan Petikan Tunggal dalam PHP untuk Sisipan MySQL

Memasukkan data ke dalam pangkalan data MySQL selalunya melibatkan pengendalian rentetan yang mengandungi aksara khas. Berurusan dengan petikan tunggal boleh menjadi sangat rumit.

Masalahnya

Satu senario telah diterangkan di mana dua pernyataan SQL digunakan untuk memasukkan dan memproses data daripada borang. Pernyataan pertama, digunakan untuk memasukkan data ke dalam pangkalan data, berfungsi tanpa masalah. Walau bagaimanapun, pernyataan kedua, yang mendapatkan semula data dan mencetuskan e-mel, gagal dengan ralat MySQL apabila nama itu mengandungi petikan tunggal (cth., "O'Brien").

Penyelesaian

Penyelesaian terletak pada melepaskan rentetan yang dimasukkan ke dalam pangkalan data. PHP menyediakan fungsi mysql_real_escape_string() untuk tujuan ini. Ia menggantikan aksara seperti petikan tunggal dengan persamaan yang dilepaskan, mencegah ralat dan rasuah data.

Mengapa Gelagat Berbeza?

Sebab bagi tingkah laku berbeza antara kedua-dua pernyataan berkemungkinan disebabkan oleh penggunaan magic_quotes_gpc. Konfigurasi PHP ini secara automatik melepaskan rentetan yang dikumpulkan daripada $_GET, $_POST dan $_COOKIES. Dalam pernyataan pertama, data telah ditangkap terus daripada borang, dan pelarian automatik ini telah digunakan.

Walau bagaimanapun, apabila data itu diambil dan dimasukkan dalam pernyataan kedua, ia tidak lagi terlepas. Akibatnya, petikan tunggal dalam nama menyebabkan ralat MySQL. Dengan menggunakan mysql_real_escape_string(), kedua-dua rentetan boleh dilepaskan dengan betul, memastikan aksara khas dikendalikan dengan betul dan integriti data dikekalkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Rentetan dengan Petikan Tunggal ke dalam MySQL Menggunakan PHP dengan Selamat?. 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