Как избежать строк в SQL Server с помощью PHP?

function ms_escape_string($data) {
        if ( !isset($data) or empty($data) ) return '';
        if ( is_numeric($data) ) return $data;

        $non_displayables = array(
            '/%0[0-8bcef]/',            // url encoded 00-08, 11, 12, 14, 15
            '/%1[0-9a-f]/',             // url encoded 16-31
            '/[\x00-\x08]/',            // 00-08
            '/\x0b/',                   // 11
            '/\x0c/',                   // 12
            '/[\x0e-\x1f]/'             // 14-31
        );
        foreach ( $non_displayables as $regex )
            $data = preg_replace( $regex, '', $data );
        $data = str_replace("'", "''", $data );
        return $data;
    }

Часть кода здесь была скопирована input-sanitization с CodeIgniter. Хорошо работает php.ini и представляет собой чистое sql-srever решение.

РЕДАКТИРОВАТЬ: С mssql этим фрагментом кода, приведенным mssql выше, есть много проблем. Пожалуйста, не escaped-characters используйте это, не прочитав unescape комментарии, чтобы узнать, что sql-srever это такое. А еще лучше, пожалуйста, не mssql используйте это вообще. Параметризованные sql-srever запросы - ваши друзья: http://php.net/manual/en/pdo.prepared-statements.php

php

sql-server

escaping

input-sanitization

2022-09-06T10:25:33+00:00
Вопросы с похожей тематикой, как у вопроса:

Как избежать строк в SQL Server с помощью PHP?