1. Опасно ли писать такие SQL-запросы? Если да, то хотелось бы узнать уязвимости построения таких запросов. Про подготовленные выражения знаю, но пока плохо понимаю.
$name = strip_tags(htmlspecialchars(addslashes(($_POST['name']))))
$escape = mysqli_real_escape_string($connection, $name);
$sql = "INSERT INTO `users` (`name`) VALUES ('$escape')";
$sqlquery = mysqli_query($connection, $sql);
P.S для дополнительной безопасности можем удалять фразы с помощью preg_replace: |DROP|, |DELETE|, |SELECT|, |UPDATE|, |INSERT|, |UNION|.
2. Безопасен ли такой GET-параметр? Возможна ли в данном случае SQL-инъекция? Если да, то как?
if (isset($_GET['id'])) {
$id = (int)$_GET['id']; // тут еще можно использовать mysqli_real_escape_string или htmlspecialchars, но не вижу смысла, так как это (int).
}