Примеры параметризованных запросов [закрыто]
Не мог бы кто-нибудь привести мне примеры того, как использовать параметризованные запросы с MySQL/PHP, пожалуйста?
2 answers
Параметризованный запрос - это, по сути, запрос, который абстрагирует все входные данные. Это имеет несколько хороших побочных эффектов, например, делает весь ввод безвредным (т. Е. никакие вредные инъекции невозможны) и делает его быстрее при повторном использовании, так как он предварительно проанализирован и скомпилирован, поэтому движок знает, как применить заданный ввод. Примером в чистом mysql является:
PREPARE qry FROM "INSERT INTO tbl VALUES (?)";
Инструкция теперь скомпилирована и кэширована и может выполняться повторно без необходимости перекомпиляции и интерпретации это:
SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;
При использовании в PHP обычно это выглядит так (сокращенно):
$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));
PREPARE stmt_name FROM "SELECT name FROM Country WHERE code = ?";
SET @test_parm = "FIN";
EXECUTE stmt_name USING @test_parm;
Источник: MySQL Dev: Подготовленные инструкции