我想知道PHP中SQL Server转义字符串的等价物是什么?
答案 0 :(得分:7)
很好的问题,我不知道,但您可以将PDO::quote()
与PDO_DBLIB
驱动程序一起使用。
编辑:好像this guy got 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);
}
答案 1 :(得分:3)
最好的选择是使用参数化查询,然后您不必转义字符串。
如果您仍想自己将查询放在一起,那么为SQL Server(T-SQL)转义字符串文字的正确方法是用两个撇号替换字符串中的每个撇号(')。
答案 2 :(得分:0)
简短的回答是:使用连接库提供的任何机制,它实际上与数据库无关。如果您正在使用ADO,那么您有参数化查询,如果您正在使用其他内容(我对PHP一无所知),那么请使用该库提供的任何内容。
滚动你自己可能是一个坏主意,因为你很可能会出错,例如正确处理评论分隔符。