Может ли кто-нибудь дать мне примеры использования параметризованных запросов с 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;
Источник: MySQL Dev: подготовленные заявления