我想知道什麼是SQL Server轉義字符串在PHP中等效?mysql_real_escape_string替代SQL服務器
回答
不錯的問題,我不知道,但你可以使用PDO::quote()
與PDO_DBLIB
驅動程序。
編輯:好像this guygot it from StackOverflow:
function mssql_escape($data) {
if(is_numeric($data))
return $data;
$unpacked = unpack('H*hex', $data);
return '0x' . $unpacked['hex'];
}
另一種選擇:
function mssql_escape($str)
{
if(get_magic_quotes_gpc())
{
$str= stripslashes($str);
}
return str_replace("'", "''", $str);
}
它是否適用於PHP7?因爲他們刪除它。 – YumYumYum 2017-08-04 13:32:00
的最佳選擇是使用參數化查詢,那你就不要必須逃避字符串。
如果您仍然希望自己將查詢放在一起,則爲SQL Server(T-SQL)轉義字符串文字的正確方法是用兩個撇號替換字符串中的每個撇號(')。
這是否也處理字符串中的空字符,反斜槓等? – 2012-06-06 15:03:59
@ebyrob:是的。順便說一下,字符串中的反斜槓根本不需要任何特殊的處理。 – Guffa 2012-06-06 17:02:03
這是否適用於所有字符集? – 2016-04-21 03:29:08
簡短的回答是:使用連接庫提供的任何機制,它確實與數據庫無關。如果你使用的是ADO,那麼你有參數化查詢,如果你使用別的東西(我對PHP一無所知),那麼使用它提供的任何東西。
滾動你自己可能是一個壞主意,因爲你很可能會出錯,例如,正確處理評論分隔符。
- 1. 替代mysql_real_escape_string(access_denied)
- 2. XMPP服務器替代品
- 3. 替代服務器輪詢?
- 4. 替代鏈接服務器(遠程服務器是很普遍的SQL)
- 5. SQL服務器代碼(UPDATE)
- 6. 替代Ria服務
- 7. Angular 2 RC與快遞服務器代替lite服務器
- 8. 服務器到服務器通信的SSL證書替代
- 9. sql服務器xml替換或刪除
- 10. SQL服務器替換功能#2
- 11. SQL服務器中的替換變量
- 12. SQL服務器:通過組替換NULL
- 13. 用於PHP的mysql_real_escape_string的替代方案
- 14. mysql_real_escape_string的安全替代方法? (PHP)
- 15. 替代服務器類用於執行SQL腳本
- 16. 使用odbc代替c中的sql服務器連接#
- 17. SQL服務器:自引用FK,觸發代替ON DELETE CASCADE
- 18. Mac替代SQL服務器管理工作室?
- 19. 解析服務器Node.js SDK:替代Parse.User.become?
- 20. 替代MSMQ的Windows服務器核心
- 21. 替代蘋果Lion服務器Profile Manager
- 22. 替代web.config中不同的服務器
- 23. Index.html由web服務器代替main.js(Angularjs2)
- 24. 服務器端GWT事件;替代Vaadin
- 25. Java應用服務器替代方案
- 26. 替代Microsoft索引服務器?
- 27. ASP.NET中的Socket.IO服務器替代
- 28. 鏈接服務器的替代
- 29. Ria服務替代WCF服務
- 30. SSAS服務器中的代理sql服務器
如果您使用類似PDO的包裝,您不必擔心,因爲您可以使用參數化查詢。如果可以的話,使用包裝。 – 2010-01-27 11:52:14
對不起,沒有使用PDO的準則。 – 2010-01-27 11:53:09