Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Melarikan Diri Rentetan dan Mengendalikan Ralat dalam Pertanyaan SQL Server Menggunakan PHP?

Bagaimana untuk Melarikan Diri Rentetan dan Mengendalikan Ralat dalam Pertanyaan SQL Server Menggunakan PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-13 16:45:10428semak imbas

How to Escape Strings and Handle Errors in SQL Server Queries Using PHP?

Melepaskan Rentetan dalam Pelayan SQL Menggunakan PHP: Alternatif kepada mysql_real_escape_string()

Sementara mysql_real_escape_string() PHP digunakan secara meluas untuk escaping string() Pertanyaan pangkalan data MySQL, ia tidak sesuai untuk Microsoft SQL Server. Artikel ini meneroka alternatif untuk melarikan diri rentetan dan mendapatkan semula ralat dalam SQL Server menggunakan PHP.

String Escaping

Sebaliknya addslashes(), yang tidak mencukupi sepenuhnya, kaedah pengekodan rentetan bait hex menyediakan penyelesaian yang lebih komprehensif:

$unpacked = unpack('H*hex', $data);
mssql_query('
    INSERT INTO sometable (somecolumn)
    VALUES (0x' . $unpacked['hex'] . ')
');

Yang lebih abstrak pelaksanaan:

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) . ')
');

Ralat Retrieval

Fungsi mssql_get_last_message() berfungsi sebagai setara dengan mysql_error() dalam konteks SQL Server, memberikan maklumat terperinci tentang sebarang mengalami ralat.

Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri Rentetan dan Mengendalikan Ralat dalam Pertanyaan SQL Server 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