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