Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memasukkan Rentetan dengan Petikan Tunggal ke dalam MySQL Menggunakan PHP dengan Selamat?
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!