Раз никто по теме нормально не смог ответить, то отвечу тогда я :)
Не знаю можно ли кидать ссылку на видео. Надеюсь никого не обижу:
https://school-php.com/courses/php-i-mysql-programmirovanie-s-nulya/урок-20/php-mysql-работаВот тут я показываю как писать mysqli_real_escape_string для безопасности. То есть именно библиотеку mysqli_* , а не mysql_ .
Хочу заметить, что real_escape_string экранирует кавычки, то есть запросы без кавычек как бы не экранируются.
SELECT *
FROM `users`
WHERE `id` = ".$_POST['id']."
В данном запросе ты можешь увидеть то, что передаётся цифра 5 и получается
WHERE `id` = 5
Но если вписать 0 or 1=1, то получим запрос
SELECT *
FROM `users`
WHERE `id` = 0 or 1=1
Что приведет к уязвимости! Применения очень обширные, доступ к непредвиденным данным
Приведение к типу решает эту проблему, для чисел пишешь (int), (float), для строк, которые записываются в запросе в кавычках - real_escape_string .