Примеры параметризованных запросов [закрыто]


Не мог бы кто-нибудь привести мне примеры того, как использовать параметризованные запросы с MySQL/PHP, пожалуйста?

Author: shin, 2009-12-12

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"));
 9
Author: Tor Valamo, 2009-12-12 17:21:30
PREPARE stmt_name FROM "SELECT name FROM Country WHERE code = ?";

SET @test_parm = "FIN";

EXECUTE stmt_name USING @test_parm;

Источник: MySQL Dev: Подготовленные инструкции

 4
Author: Daniel Vassallo, 2016-08-17 21:58:24