Для этого запроса необходимо использовать 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); }
В этом случае важна скорость запроса.
Нет, подготовленные запросы (при правильном использовании) обеспечат правильное экранирование данных для безопасного запроса. Вы как бы правильно их используете, просто нужно изменить одну мелочь. Потому что вы используете '?' placeholder, лучше передать параметры через метод execute.
$sql->execute(array($consulta));
Просто будьте осторожны, если вы выводите это на свою страницу, санация базы данных не означает, что она будет безопасной для отображения в HTML, поэтому запустите htmlspecialchars ().