什么是参数化查询,在 PHP 和 MySQL 中这种查询的示例是什么?
问问题
123424 次
4 回答
51
参数化查询(也称为准备好的语句)是一种预编译 SQL 语句的方法,因此您需要提供的只是需要插入到语句中的“参数”(想想“变量”)被执行。它通常用作防止SQL 注入攻击的一种手段。
您可以在 PHP 的PDO 页面(PDO 是一个数据库抽象层)上阅读有关这些的更多信息,但如果您使用 mysqli 数据库接口,您也可以使用它们(请参阅准备文档)。
于 2011-01-17T10:27:37.300 回答
6
参数化查询是一种查询,其中占位符用于参数并且在执行时提供参数值。
为什么使用参数化查询
- 使用参数化查询的最重要原因是避免 SQL 注入攻击。
- 其次,参数化查询处理 sql 查询可能失败的情况,例如在字段中插入 O'Baily。参数化查询处理此类查询,而不会强迫您用双单引号替换单引号。
于 2016-11-23T08:28:22.070 回答
4
该语句是数据库系统的特点之一,同一条SQL语句可以高效地重复执行。准备好的语句是模板的一种,由具有不同参数的应用程序使用。参考文章
数据库系统可以执行相同的 SQL 语句,而无需对同一种 SQL 语句进行一次又一次的解析、编译和优化。
您可以在 MySQL 中编写或创建预准备语句,但这不是一种有效的方式,因为通过预准备语句 API 的二进制协议更好。
但是您仍然可以编写,甚至不需要任何其他可以直接用 SQL 编写的编程。您可以为 MySQL 客户端程序使用准备好的语句。您还可以在存储过程中为动态 SQL 方法使用准备好的语句。
在 MySQL 中创建准备好的语句:参考取自这篇文章
PREPARE TestStmt FROM
'SELECT * FROM Test
WHERE TestNumber=?';
您可以使用 PHP 代码通过其 API 管理准备好的语句或在 JDBC 级别进行管理。
于 2015-10-01T10:39:06.787 回答