谁能给我一个如何使用参数化查询与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的开发:准备语句

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top