Melepaskan Rentetan dalam Pelayan SQL Menggunakan PHP: Panduan Komprehensif
Apabila bekerja dengan SQL Server menggunakan PHP, adalah penting untuk melindungi data anda daripada Serangan suntikan SQL dengan melepaskan rentetan dengan betul. Ini ialah teknik untuk menghalang input berniat jahat daripada ditafsirkan sebagai arahan SQL.
Alternatif kepada mysql_real_escape_string()
Tidak seperti MySQL, SQL Server tidak menyediakan terbina dalam fungsi yang setara dengan mysql_real_escape_string().
Masukkan addslashes()
addslashes() ialah fungsi PHP yang sering dianggap sebagai alternatif berpotensi untuk rentetan melarikan diri. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa addslashes() tidak mencukupi sepenuhnya untuk digunakan dengan pangkalan data SQL Server.
Penyelesaian yang Lebih Teguh
Penyelesaian yang ideal ialah mengekod secara manual data sebagai rentetan bait heks. Berikut ialah coretan kod untuk membimbing anda:
$unpacked = unpack('H*hex', $data); mssql_query(' INSERT INTO sometable (somecolumn) VALUES (0x' . $unpacked['hex'] . ') ');
Abstraksi untuk Escape Boleh Digunakan Semula
Untuk memudahkan dan menggunakan semula proses melarikan diri, anda boleh mencipta fungsi tersuai seperti ini:
function mssql_escape($data) { if(is_numeric($data)) return $data; $unpacked = unpack('H*hex', $data); return '0x' . $unpacked['hex']; } mssql_query(' INSERT INTO sometable (somecolumn) VALUES (' . mssql_escape($somevalue) . ') ');
Alternatif kepada mysql_error()
Untuk pengendalian ralat, SQL Server menyediakan mssql_get_last_message() sebagai alternatif kepada mysql_error().
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melarikan Diri dengan Selamat daripada Rentetan dalam Pertanyaan Pelayan SQL Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!