Подтвердить что ты не робот

Требуется ли mysql_real_escape_string() при использовании подготовленных операторов?

Для этого запроса необходимо использовать mysql_real_escape_string?

Любое улучшение или запрос в порядке?

$consulta = $_REQUEST["term"]."%";

($sql = $db->prepare('select location from location_job where location like ?'));

$sql->bind_param('s', $consulta);
$sql->execute();
$sql->bind_result($location);

$data = array();

while ($sql->fetch()) {
    $data[] = array('label' => $location);
}

В этом случае важна скорость запроса.

4b9b3361

Ответ 1

Нет, подготовленные запросы (при правильном использовании) обеспечат правильное экранирование данных для безопасного запроса. Вы как бы правильно их используете, просто нужно изменить одну мелочь. Потому что вы используете '?' placeholder, лучше передать параметры через метод execute.

$sql->execute(array($consulta));

Просто будьте осторожны, если вы выводите это на свою страницу, санация базы данных не означает, что она будет безопасной для отображения в HTML, поэтому запустите также htmlspecialchars().