Я запускаю все свои целые числа через (int)Integer
, чтобы сделать их безопасными для использования в моих строках запроса.
Я также запускаю свои строки через этот код функции: -
if(!get_magic_quotes_gpc()) {
$string = mysql_real_escape_string($string);
}
$pattern = array("\\'", "\\\"", "\\\\", "\\0");
$replace = array("", "", "", "");
if(preg_match("/[\\\\'\"\\0]/", str_replace($pattern, $replace, $string))) $string = addslashes($string);
$cleanedString = str_replace('%','',$string);
Я, очевидно, возвращаю переменную $ cleanedString. Теперь я заменяю символ%, потому что это подстановочный знак для mySQL, и он может замедлить мои запросы (или заставить их вернуть неверные данные), если пользователь вставит их. Есть ли какие-то другие специальные символы для MySQL, о которых я должен беспокоиться?
Во второй ноте, есть ли что-то неправильное или избыточное в моем поиске и замене после mysql_real_escape_string
? Я получил его с веб-сайта, когда только начинал, и (если я правильно помню) он сказал, что вы должны использовать этот поиск / замену в дополнение к escape-строке. Похоже, он пытается удалить ранее экранированные символы инъекции?