网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 生活知识 知识问答

PHP扩展之PDO

时间:2024-10-13 11:29:49

PDO作为数据扩扩展中抽象层方式之一,为PHP访问数据库定义了一个轻量级的一致接口,实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。

PHP扩展之PDO

PDO常用函数

1、获取目前系统中实现的数据库pdo扩展static array PDO::getAvailableDrivers ( void )array pdo_drivers ( void )

PHP扩展之PDO

2、构造方法,创建数据库连接对象,失败抛出异常信息PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )$dsn 数据源名称也称之为DSN,包含数据库请求链接的信息。如;数据库类型:数据库名称和地址

PHP扩展之PDO

3、数据库属性设置和获取bool PDO::setAttribute ( int $attribute , mixed $value )mixed PDO::getAttribute ( int $attribute )

PHP扩展之PDO

4、特殊字符的转义public string PDO::quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )

PHP扩展之PDO

5、数倌栗受绽据库查询,只能执行查询语句public PDOStatement PDO::query ( string $statement )public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )执行SQL语句,返回一个结果集作为一个PDOStatement对象

PHP扩展之PDO

6、执行sql语句返回影响行数适用于删除,添加,修改int PDO::exec ( string $statement )

PHP扩展之PDO

7、返回最后插入行的ID或序列值string PDO::lastInsertId ([ string $name = NULL ] )$name 应该返回ID的那个序列对象的名称。返回值如果没有为参数 name 指定序列名称,PDO::lastInsertId() 则返回一个表示最后插入数据库那一行的行ID的字符串。如果为参数 name 指定了序列名称,PDO::lastInsertId() 则返回一个表示从指定序列对象取回最后的值的字符串。如果当前 PDO 驱动不支持此功能,则 PDO::lastInsertId() 触发一个 IM001 SQLSTATE 。

PHP扩展之PDO

8、事务处理方式检查是否在一个事务内bool PDO::inTransaction ( void )启动一个事务bool PDO::beginTransaction ( void )提交一个事务bool PDO::commit ( void )回滚一个事务PDO::rollBack ( void )在实际操作中可能需要同时值多条sql语句才能表示一个业务逻辑的完整完成,所以在事务就十分重要

PHP扩展之PDO

9、错误信息mixed PDO::errorCode ( void ) 返回错误码,错误码是一个五位的字符串,00000表示没有错误public array PDO::errorInfo ( void ) 返回一个到错误信息的数组

PHP扩展之PDO

10、为了避免出现sql注入的情况出现,pdo提供了一种特殊的方法对sql语句进行处理public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )该方法只是对sql语句进行预处理,得到一个PDOStatement 对象,然后通过完善PDOStatement 对象的方式完善sql语句常见的方式有两种1.使用:+变量的方式代替需要填写的位置2.是使用?的方式代替需要填的的位置下面我们针对这两种方式做如下实例:在实例中会使用到PDOStatement 对象中的下面方法:bool PDOStatement::execute ([ array $input_parameters ] ) 执行一条预处理语句bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] ) 绑定一个参数到指定的变量名$parameter 参数标识符。对于使用命名占位符的预处理语句,应是类似 :name 形式的参数名。对于使用问号占位符的预处理语句,应是以1开始索引的参数位置。$variable 绑定到 SQL 语句参数的 PHP 变量名。$data_type 使用 PDO::PARAM_* 常量明确地指定参数的类型。要从一个存储过程中返回一个 INOUT 参数,需要为 data_type 参数使用按位或操作符去设置 PDO::PARAM_INPUT_OUTPUT 位。$length 数据类型的长度。为表明参数是一个存储过程的 OUT 参数,必须明确地设置此长度。bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] ) 把一个值绑定到一个参数

PHP扩展之PDOPHP扩展之PDOPHP扩展之PDOPHP扩展之PDOPHP扩展之PDOPHP扩展之PDO

11、内容获取函数mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = 霸烹钟爷PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )fetch_style控制下一行如何返回给调用者。此值必须是 PDO::FETCH_* 系列常量中的一个,缺省为 PDO::ATTR_DEFAULT_FETCH_MODE 的值 (默认为 PDO::FETCH_BOTH )。PDO::FETCH_ASSOC:返回一个索引为结果集列名的数组PDO::FETCH_BOTH(默认):返回一个索引为结果集列名和以0开始的列号的数组PDO::FETCH_BOUND:返回 TRUE ,并分配结果集中的列值给 PDOStatement::bindColumn() 方法绑定的 PHP 变量。PDO::FETCH_CLASS:返回一个请求类的新实例,映射结果集中的列名到类中对应的属性名。如果 fetch_style 包含 PDO::FETCH_CLASSTYPE(例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE),则类名由第一列的值决定PDO::FETCH_INTO:更新一个被请求类已存在的实例,映射结果集中的列到类中命名的属性PDO::FETCH_LAZY:结合使用 PDO::FETCH_BOTH 和 PDO::FETCH_OBJ,创建供用来访问的对象变量名PDO::FETCH_NUM:返回一个索引为以0开始的结果集列号的数组PDO::FETCH_OBJ:返回一个属性名对应结果集列名的匿名对象array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )string PDOStatement::fetchColumn ([ int $column_number = 0 ] )mixed PDOStatement::fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] )

PHP扩展之PDO
© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com