一、概述
PDO(PHP Data Object PHP数据对象)
二、安装
1、确认是否安装
<?php
phpinfo();
2、编辑php.ini
extension_dir 指向php安装目录下的ext目录
extension=php_pdo_mysql.dll
去掉这行前面的分号。
3、重启网络服务器(apache)
4、确认是否安装成功。
三、应用
PDO、PDOStatement
new PDO(string $dsn,
string $username,string $password)
功能:实例化PDO类,连接数据库
参数:
dsn DataSource Name 数据源名称
格式:mysql:host=localhost;port=3306;
dbname=psd1703
mysql:host=localhost;dbname=psd1703
username 连接数据库的用户名
password 连接数据库的密码
返回 PDO类的类对象
exec(string $query)
功能:操作没有返回结果集的SQL语句
参数:
query SQL语句
返回:被影响行数
lastInsertId()
功能:用于获取上一次成功操作insert产生的自增ID
返回:自增ID
query(string $query)
功能:用于执行有返回结果集的SQL语句
参数:
query SQL语句
返回:PDOStatement类的类对象。
四、PDO预处理
使用预处理的原因:
1、效率高
2、安全,防止MySQL注入
A、编译SQL语句
prepare(string $query)
功能:编译SQL语句
参数:
query 编译的SQL语句
返回:PDOStatment类的类对象
B、参数绑定
bindParam(mixed $parameter,mixed $value)
功能:绑定参数。
是PDOStatement类的成员方法
参数:
parameter SQL语句中参数占位符的名称,
若参数占位符是?,parameter 取索引从下标1开始顺延。
若参数占位符类似 :name ,parameter取 :name。
value 参数占位符替换值。value必须是变量。
返回:布尔值
C、执行
execute()
功能:执行PDO预处理语句中编译好的SQL语句。
是PDOStatement类的成员方法。
返回:布尔值
被影响行数和结果集的行数
rowCount()
功能:没有返回结果集的SQL语句,返回被影响的行数。
有返回结果集的SQL语句,返回结果集的行数。
返回:
fetch([int $fetchStyle])
功能:从结果集中获取一行数据。
PDOStatement类的成员方法
参数:
fetchStyle PDO::FETCH_BOTH 关联和索引数组
PDO::FETCH_ASSOC 关联数组
PDO::FETCH_NUM 索引数组
此参数缺省,默认关联和索引数组
返回:从结果集中获取一行数据,格式是数组。每执行一次从结果集中获取一行数据,获取不到返回false
fetchAll([int $fetchStyle])
功能:从结果集中获取数据,一次获取所有数据。
参数:
fetchStyle PDO::FETCH_BOTH 关联和索引数组
PDO::FETCH_ASSOC 关联数组
PDO::FETCH_NUM 索引数组
此参数缺省,默认关联和索引数组
返回:结果集中获取数据,数据类型:数组