什么是参数化查询,这样的查询示例在PHP和MySQL中会是什么?
答案 0 :(得分:19)
参数化查询(也称为预处理语句)是一种预编译SQL语句的方法,因此您需要提供的只是“参数”(想想“变量”)需要插入语句才能执行。它通常用作预防SQL injection attacks的手段。
您可以在PHP的PDO page(PDO是数据库抽象层)上阅读更多相关内容,但如果您使用的是mysqli数据库界面,也可以使用它们(请参阅prepare文档)。
答案 1 :(得分:2)
这是一个明确而简洁的解释,它是什么,以及它是如何工作的。 How and Why to use Parameterization
该过程必不可少的是服务器在没有参数的情况下预处理请求,因此它知道查询的类型。因此,例如SELECT查询只是一个SELECT查询,并且不能通过参数(请求变量)连接成SELECT / DROP或其他一些MySql注入。相反,注入数据将只是参数字段中的字符串数据。
答案 2 :(得分:1)
此语句是数据库系统的一项功能,其中相同的SQL语句以高效率重复执行。准备好的语句是一种模板,由具有不同参数的应用程序使用。here
数据库系统可以执行相同的SQL语句,而无需对同一种SQL语句一次又一次地进行解析,编译和优化。
您可以在MySQL中编写或创建预准备语句,但这不是一种有效的方法,因为通过预准备语句API的二进制协议更好。
但是你仍然可以编写,甚至这不需要任何其他可以直接在SQL中编写的编程。 您可以为MySQL Client程序使用预准备语句。您还可以在存储过程中使用预准备语句来进行动态SQL方法。
在MySQL中创建预准备语句:Reference Article
function loaderComplete(e:Event):void
{
loadedPage = loader.data;
Reader.read(loadedPage);
}
您可以使用PHP代码通过其API管理预准备语句或在JDBC级别进行管理。
答案 3 :(得分:1)
参数化查询是一种查询,其中占位符用于参数,参数值在执行时提供。
为何使用参数化查询