Предполагая, что он правильно экранирован, он не сделает вас уязвимым. Дело в том, что правильно спастись сложнее, чем кажется на первый взгляд, и вы обрекаете себя на то, чтобы правильно убегать каждый раз, когда выполняете такой запрос. Если возможно, избегайте всех этих проблем и используйте подготовленные операторы (или связанные параметры или параметризованные запросы). Идея состоит в том, чтобы позволить библиотеке доступа к данным корректно экранировать значения.
Например, в PHP, используя mysqli :
$db_connection = new mysqli("localhost", "user", "pass", "db");
$statement = $db_connection->prepare("SELECT thing FROM stuff WHERE id = ?");
$statement->bind_param("i", $user_id); //$user_id is an integer which goes
//in place of ?
$statement->execute();