Menjadikan String JavaScript Mesra MySQL
Apabila cuba menghantar rentetan JavaScript yang mengandungi alamat e-mel kepada pelayan NodeJS untuk pelaksanaan pertanyaan dalam Pangkalan data MySQL, pengguna mungkin menghadapi masalah. Walaupun teks biasa, seperti nama pengguna, dikendalikan tanpa komplikasi, alamat e-mel menghadapi kesukaran kerana aksara khas yang mungkin memerlukan pelarian untuk keserasian SQL.
Untuk menangani isu ini, alternatif kepada fungsi melarikan diri dicari, selari kefungsian mysql_real_escape_string() PHP. Fungsi ini melindungi daripada suntikan SQL dengan melepaskan aksara tertentu.
Pelaksanaan JavaScript mysql_real_escape_string() adalah sangat mudah, seperti yang diperhatikan dalam dokumentasi yang disediakan. Berikut ialah pelaksanaannya:
function mysql_real_escape_string(str) { return str.replace(/[\x08\x09\x1a\n\r"'\\%]/g, function (char) { switch (char) { case "": return "\0"; case "\x08": return "\b"; case "\x09": return "\t"; case "\x1a": return "\z"; case "\n": return "\n"; case "\r": return "\r"; case "\"": case "'": case "\": case "%": return "\" + char; // prepends a backslash to backslash, percent, // and double/single quotes default: return char; } }); }
Perhatikan bahawa pelaksanaan ini melangkaui PHP asal dengan melepaskan aksara tambahan, seperti tab, ruang belakang dan '%', menjadikannya sesuai untuk pertanyaan LIKE juga.
Walaupun mysql_real_escape_string() adalah set-set-aware dalam PHP rakan sejawatannya, faedah ciri ini dalam pelaksanaan JavaScript adalah tidak jelas.
Perbincangan lanjut mengenai topik ini boleh didapati di pautan yang disediakan untuk rujukan.
Atas ialah kandungan terperinci Bagaimana untuk Melarikan diri daripada String JavaScript dengan Selamat untuk Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!