альтернатива mysql_real_escape_string для SQL Server [дубликат]

7
задан John Saunders 30 May 2010 в 19:50
поделиться

3 ответа

Приятный вопрос, я не знаю, но вы можете использовать PDO :: quote () с драйвером PDO_DBLIB .


Редактировать: Похоже, этот парень получил его из 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);
}
7
ответ дан 7 December 2019 в 01:21
поделиться

Лучшая альтернатива - использовать параметризованные запросы, то вам не нужно избежать строк.

Если вы все еще хотите поставить запрос вместе, правильный способ избежать строкового литерала для SQL Server (T-SQL) - заменить каждую апострофю (') в строку с двумя апострофами.

3
ответ дан 7 December 2019 в 01:21
поделиться

Краткий ответ: использовать любой механизм, которые предоставляют ваши библиотеки подключения, на самом деле не имеет ничего общего с базой данных. Если вы используете ADO, у вас есть параметризованные запросы, если вы используете что-то еще (я ничего не знаю о PHP), а затем используйте все, что предлагает библиотеки.

Скал себя, вероятно, плохая идея, потому что вам очень вероятно, что что-то не так, например, Обработка комментариев разделителей правильно.

0
ответ дан 7 December 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: