Примеры параметризованных запросов [закрыты]
-
19-09-2019 - |
Вопрос
Кто-нибудь может привести мне примеры того, как использовать параметризованные запросы с MySQL / PHP, пожалуйста?
Решение
Параметризованный запрос - это, по сути, запрос, который абстрагирует все входные данные.Это имеет несколько хороших побочных эффектов, например, делает весь ввод безвредным (т.е.никакие вредные инъекции невозможны) и делает его быстрее при повторном использовании, поскольку он предварительно анализируется и компилируется, поэтому движок знает, как применить предоставленные входные данные.Примером в чистом 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;