Здравствуйте. Изучая mysql наткнулся на кое что не совсем понятное, помогите разобраться! Все говорят что подготовленные запросы повышают безопасность, но не понятно чем?
Если провести эксперимент:
CREATE TABLE child (id INT, name VARCHAR(100), count INT);
-- подготавливаем запрос
PREPARE prQuery FROM
'SELECT `id` FROM `article` WHERE `id` = ? && `name` = ? && `alias` = ?';
-- связываем данные.
-- Но внешние данные идут как раз сюда и теоретически возможна картина:
SET @varData1 = 4;
SET @varData2 = 'главная'; DROP TABLE child;--'; /*!!!!!!!*/
SET @varData3 = 'glavnaya';
EXECUTE prQuery USING @varData1, @varData2, @varData3;
Если это все выполнить то табличка child удалится, по крайней мере из консоли.
Да в php query одновременно 2 запроса не выполнит, и можно заэкранировать спецсимволы, Тогда какой смысл в Prepared Statements?