pdo预处理语句

PDO对预处理语句的支持需要使用PDOStatement类对象,但该类对象并不是通过NEW关键字实例化出来的,而是通过PDO对象中的prepare()方法,在数据库服务器中准备好一个预处理的SQL语句后直接返回的。如果通过之前执行PDO对象中的query()方法返回的PDOStatement类对象,只代表的是一个结果集对象。而如果通过执行PDO对象中的prepare()方法产生的PDOStatement类对象,则为一个查询对象,能定义和执行参数化的SQL命令。PDOStatement类中的全部成员方法如下所示:

01.PDOStatement::bindColumn ― 绑定一列到一个 PHP 变量

02.

03.PDOStatement::bindParam ― 绑定一个参数到指定的变量名

04.

05.PDOStatement::bindValue ― 把一个值绑定到一个参数

06.

07.PDOStatement::closeCursor ― 关闭游标,使语句能再次被执行。

08.

09.PDOStatement::columnCount ― 返回结果集中的列数

10.

11.PDOStatement::debugDumpParams ― 打印一条 SQL 预处理命令

12.

13.PDOStatement::errorCode ― 获取跟上一次语句句柄操作相关的 SQLSTATE

14.

15.PDOStatement::errorInfo ― 获取跟上一次语句句柄操作相关的扩展错误信息

16.

17.PDOStatement::execute ― 执行一条预处理语句

18.

19.PDOStatement::fetch ― 从结果集中获取下一行

20.

21.PDOStatement::fetchAll ― 返回一个包含结果集中所有行的数组

22.

23.PDOStatement::fetchColumn ― 从结果集中的下一行返回单独的一列。

24.

25.PDOStatement::fetchObject ― 获取下一行并作为一个对象返回。

26.

27.PDOStatement::getAttribute ― 检索一个语句属性

28.

29.PDOStatement::getColumnMeta ― 返回结果集中一列的元数据

30.

31.PDOStatement::nextRowset ― 在一个多行集语句句柄中推进到下一个行集

32.

33.PDOStatement::rowCount ― 返回受上一个 SQL 语句影响的行数

34.

35.PDOStatement::setAttribute ― 设置一个语句属性

36.

37.PDOStatement::setFetchMode ― 为语句设置默认的获取模式。

使用命名参数作为占位符的INSERT插入语句:

$dbh->prepare(“insert into contactinfo(name,address,phone) values(:name,:address,:phone)”);

使用问号(?)参数作为占位符的INSERT插入语句:

$dbh->prepare(“insert into contactinfo(name,address,phone) values(?,?,?)”);

时间: 2024-10-13 15:27:09

pdo预处理语句的相关文章

PDO预处理语句PDOStatement对象使用总结

PDO预处理语句PDOStatement对象使用总结 PDO对预处理语句的支持需要使用PDOStatement类对象,但该类对象并不是通过NEW关键字实例化出来的,而是通过PDO对象中的prepare()方法,在数据库服务器中准备好一个预处理的SQL语句后直接返回的.如果通过之前执行PDO对象中的query()方法返回的PDOStatement类对象,只代表的是一个结果集对象.而如果通过执行PDO对象中的prepare()方法产生的PDOStatement类对象,则为一个查询对象,能定义和执行参

前端学PHP之PDO预处理语句

× 目录 [1]定义 [2]准备语句 [3]绑定参数[4]执行查询[5]获取数据[6]大数据对象 前面的话 本来要把预处理语句和前面的基础操作写成一篇的.但是,由于博客园的限制,可能是因为长度超出,保存时总是报错,于是再开一篇.另一方面,相较于前面的exec()和query()语句来说,预处理语句更加常用 定义 在生成网页时,许多PHP脚本通常都会执行除参数之外,其他部分完全相同的查询语句,针对这种重复执行一个查询,每次迭代使用不同的参数情况,PDO提供了一种名为预处理语句(prepared s

php pdo预处理语句与存储过程

很多更成熟的数据库都支持预处理语句的概念.什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制.预处理语句可以带来两大好处: 1.查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次.当查询准备好后,数据库将分析.编译和优化执行该查询的计划.对于复杂的查询,此过程要花费较长的时间,如果需要以不同参数多次重复相同的查询,那么该过程将大大降低应用程序的速度.通过使用预处理语句,可以避免重复分析/编译/优化周期.简言之,预处理语句占用更少的资源,

PHP PDO 预处理语句与存储过程

很多更成熟的数据库都支持预处理语句的概念. 什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制.预处理语句可以带来两大好处: 查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次.当查询准备好后,数据库将分析.编译和优化执行该查询的计划.对于复杂的查询,此过程 要花费较长的时间,如果需要以不同参数多次重复相同的查询,那么该过程将大大降低应用程序的速度.通过使用预处理语句,可以避免重复分析/编译/优化周 期.简言之,预处理语句占用更少的资源

PDO预处理语句规避SQL注入攻击

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击. 第一种方法 <?php $dsn = "mysql:dbname=study;host=localhost"; $pdo = new PDO($dsn,"root","root"); /

PHP MySQL 预处理语句

PHP MySQL 预处理语句 预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下: 预处理:创建 SQL 语句模板并发送到数据库.预留的值使用参数 "?" 标记 .例如:INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?) 数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出 执行:最

MySQL pdo预处理能防止sql注入的原因

MySQL pdo预处理能防止sql注入的原因: 1.先看预处理的语法 $pdo->prepare('select * from biao1 where id=:id'); $pdo->execute([':id'=>4]); 2.语句一,服务器发送一条sql给mysql服务器,mysql服务器会解析这条sql. 语句二,服务器发送一条sql给mysql服务器,mysql服务器不会解析这条sql,只会把execute的参数当做纯参数赋值给语句一.哪怕参数中有sql命令也不会被执行,从而实

php -- PDO预处理

可以使用多种方式实现预处理:指的是在绑定数据进行执行的时候,可以有多种方式. 预处理语句中为变量 使用数组指定预处理变量 1.准备预处理语句(发送给服务器,让服务器准备预处理语句) PDOStatement PDO::prepare:类似exec将一条SQL语句发送给Mysql服务器 //PDO::prepare 能够自动的准备一个预处理语句,用户需要准备的只是预处理所要执行的语句 //需求:往学生表里循环插入10条记录 //PDO的预处理能够自动的将对应的以:开始的变量给记录下来,实际发送给服

预处理语句

[1]预处理语句是什么语句? 预处理语句最明显的标志是一些行首以#开始的特殊语句. 例如:#include,#define 等就是预处理语句.在程序的其它编译处理(词法分析.语法分析.代码生成.优化和连接等)之前,先进行这些语句的分析处理. [2]预处理语句使用的目的? 目的在于帮助程序员编写出易读.易改.易移植并便于调试的程序. [3]预处理语句主要有那些? (1)宏定义和宏替换 (2)文件包含 (3)条件编译 (4)行控制 [4]预处理语句的作用范围? 从被定义语句开始直至被解除定义或是到包