使用 PHP 在 SQL Server 中轉義字串
在資料庫程式設計領域,防止 SQL 注入攻擊至關重要。轉義用於 SQL 查詢的字串是防範惡意攻擊的關鍵一步。
在專門處理 SQL Server 時,許多開發人員想知道 PHP 中已棄用的 mysql_real_escape_string() 函數的替代方案。雖然addslashes() 看起來像是一個簡單的替換,但在某些情況下它存在不足。
十六進位位元組字串解決方案
對於全面的解決方案,請考慮將資料轉換為十六進位位元組字串。這種方法確保與所有資料類型的通用相容性:
$unpacked = unpack('H*hex', $data); mssql_query(' INSERT INTO sometable (somecolumn) VALUES (0x' . $unpacked['hex'] . ') ');
用於轉義的抽象函數
為了簡化過程,您可以定義一個自定義函數:
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) . ') ');
要處理 SQL Server 中的錯誤,請使用 mssql_get_last_message() 函數,該函數提供與 mysql_error() 類似的函數。
以上是如何在 PHP 中安全地轉義 SQL Server 查詢的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!