Дополнительно.Кроме того.
Подготовленные государственные деятели, при правильном использовании, почти полностью устраняют проблемы SQL-инъекций.Но вы все равно должны отформатировать / очистить входные данные, где это уместно.Очистка входных данных не является функцией безопасности, но рекомендуется для надежности и удобства использования.В случае вашего $ city вы можете удалить все несловарные символы:
$city = trim(preg_replace("/[^\w-]+/", " ", $city));
Что опять же: не заменяет экранирование базы данных или подготовленные операторы, но обеспечивает согласованность данных для работы.