Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Melarikan Diri String dengan Selamat dalam SQL Server Apabila Menggunakan PHP?

Bagaimana untuk Melarikan Diri String dengan Selamat dalam SQL Server Apabila Menggunakan PHP?

Barbara Streisand
Barbara Streisandasal
2024-12-14 02:36:09311semak imbas

How to Safely Escape Strings in SQL Server When Using PHP?

Melepaskan Rentetan dengan Selamat dalam Pelayan SQL Menggunakan PHP

Apabila berinteraksi dengan Pelayan SQL menggunakan PHP, adalah penting untuk memastikan bahawa sebarang data yang dibekalkan pengguna dilepaskan dengan betul, menghalang SQL serangan suntikan. Walaupun mysql_real_escape_string() biasanya digunakan untuk MySQL, ia tidak tersedia untuk SQL Server.

Alternatif untuk Melarikan String: mssql_escape()

Tidak seperti MySQL, SQL Server tidak menyediakan fungsi khusus untuk rentetan melarikan diri. Walau bagaimanapun, anda boleh mencipta fungsi anda sendiri:

function mssql_escape($data) {
    if (is_numeric($data)) {
        return $data;
    }
    $unpacked = unpack('H*hex', $data);
    return '0x' . $unpacked['hex'];
}

$escaped_value = mssql_escape($user_input);

Fungsi ini mengekod data sebagai rentetan bait heksadesimal, memastikan sebarang aksara khas dilepaskan.

Alternatif untuk mysql_error(): mssql_get_last_message((( )

Untuk mendapatkan semula mesej ralat daripada SQL Pelayan, gunakan mssql_get_last_message():

$error_message = mssql_get_last_message();

Fungsi ini mendapatkan semula mesej ralat terakhir yang dijana oleh pelaksanaan pertanyaan SQL Server.

Contoh Penggunaan

Menggabungkan fungsi ini, anda boleh memasukkan input pengguna ke dalam jadual SQL Server dengan selamat:

$connection = mssql_connect(...);
$query = 'INSERT INTO sometable (somecolumn) VALUES (' . mssql_escape($user_input) . ')';
$result = mssql_query($query, $connection);

if (!$result) {
    $error_message = mssql_get_last_message(); // Retrieve error message
}

Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri String dengan Selamat dalam SQL Server Apabila Menggunakan PHP?. 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