Как избежать строк в 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
Как избежать строк в SQL Server с помощью PHP?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.