开发者

mysql_real_escape_string alternative for SQL Server [duplicate]

This question already has answers here: 开发者_如何学编程 How to escape strings in SQL Server using PHP? (14 answers) Closed 6 years ago.

Am wondering what is the equivalent in PHP for SQL Server escaping of strings?


Nice question, I don't know but you could use PDO::quote() with the PDO_DBLIB driver.


EDIT: Seems like 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'];
}

Another option:

function mssql_escape($str)
{
    if(get_magic_quotes_gpc())
    {
        $str= stripslashes($str);
    }
    return str_replace("'", "''", $str);
}


The best alternative is to use parameterised queries, then you don't have to escape strings.

If you still want to put the query together yourself, the proper way to escape a string literal for SQL Server (T-SQL) is to replace each apostrophe (') in the string with two apostrophes.


The short answer is: use whatever mechanism your connection libraries provide, it really has nothing to do with the database. If you're using ADO, you have parameterized queries, if you're using something else (I know nothing about PHP) then use whatever that library offers.

Rolling your own is probably a bad idea, because you're very likely to get something wrong, e.g. handling comment delimiters correctly.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜