Я написал скрипт PHP для обработки входа пользователя. Чтобы предотвратить атаку SQL Injection, я использовал функцию mysql_real_escape_string. До сегодняшнего дня все работает хорошо. Я проследил код и нашел проблему; строка, использующая 'mysql_real_escape_string'. У меня изменить его основной команды следующее:Почему mysql_real_escape_string возвращает boolean?
$username=mysql_real_escape_string('sample');
var_dump($username)
Выход:
bool(false)
На моем локальном веб-сервере (WAMP) все в порядке, но на удаленном хосте появляется проблема! Что не так? (Host РНР 5.4.12)
Вы действительно уверены, что соединение mysql открыто до вызова 'mysql_real_escape_string()'? – hek2mgl
Обратите внимание, что 'mysql_real_escape_string' - это неправильный способ [защититься от SQL-инъекции] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?lq= 1). Не говоря уже о том, что он устарел ... – DCoder
Функции 'mysql_ *' ** больше не поддерживаются ** и не должны использоваться ни в одной новой кодовой базе. Он постепенно прекращается в пользу новых API. Вместо этого вы должны использовать [** подготовленные заявления **] (https://www.youtube.com/watch?v=nLinqtCfhKY) с помощью [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/mysqli). –