Что почитать по составлению безопасных sql запросов?
Там все актуально до сих пор. Написанное было актуально лет 10 назад, актуально будет еще долго. Принципы те же самые. Ничего не изменилось. Автор той статьи - очень авторитетный товарищ и на этой теме "собаку съел". Он многих "учил" в онлайне еще тогда, когда 95% населения тостера под стол пешком ходили. Вот кстати его сайт еще - phpfaq.ru с очень ценной информацией.
Базовые принципы на то и базовые, что не меняются со временем.  Я бы только переформулировал немного по-другому,Данные подставляем в запрос только через плейсхолдерыВсе остальное - только после проверки через белые списки
И еще бы добавил что эти правила должны соблюдаться безусловно, в 100% процентов случаев, без рассуждений типа "вот эти данные у нас безопасны, их можно не защищать".
Если же говорить о тенденциях, то с чистым SQL сейчас никто практически не работает.  95% запросов выполняются через ORM. Т.е. вместо $stmt = $pdo->prepare("SELECT * FROM user where id = ?");
$stmt->execute([$id]);
$user = $stmt->fetch();
пишем просто$user = User::find($id);
при этом защита уже вшита у ORM внутри и думать о ней не надо
Ну а если надо сделать более сложный запрос, то опять же, есть развитые Квери билдеры, у которых защита также уже встроена. И только в редчайших случаях нужно писать чистый SQL, и только тогда нужно вспоминать про ручную защиту от инъекций.