PDO抽象层初识

本文详细介绍了PHP中的PDO类,包括如何实例化PDO对象、通过PDO进行数据库的查询、更新操作及预处理机制。此外,还讲解了PDO的错误处理机制,如静默模式、警告模式和异常模式,并提供了设置不同模式的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PDO抽象类。
PDO抽象类中有所有操作数据库的方法,在PHP端操作数据库时,通过PDO类的对象来操作数据库,这

样可以实现通过同样的语句操作不同的数据库

首先要实例化这个类的一个对象。
 $pdo = new PDO('参数一','参数2','参数3');
PDO类的构造函数的三个参数分别是:
参数一是连接类型,主机名,数据库名    写法类似:'mysql:host=localhost;dbname=database'
参数2 是   数据库的用户名
参数2 是   数据库的密码

实例化对象后,要通过类的方法操作数据库
首先有一个sql语句,通过PDO操作数据库是,查看语句使用query()方法,返回一个PDOStatement对

象,增删改使用exec()方法返回受影响的行数
$sql='select * from tablename';
$statement = $pdo->query($sql);
//要获得数据要使用PDOStatement对象的fetch()/fetchAll()/fetchColumn()方法;
//fetch() 获得结果中的下一条记录;
//fetchAll() 获得结果中的所有记录;
//fetchColumn() 获得数据中某一列的值,参数是列的索引
$rows=$statement->fetchAll(PDO::FETCH_ASSOC);
这是查询数据的步骤

增删改差别不大:
$sql='delete * from tablename where id=1';
$res = $pdo->exec($sql);


PDO的预处理机制很好理解,将sql语句相同的部分提前处理以提高性能,数据部分使用站位字符代

替,使用prepare()预处理没有数据的sql语句,之后再用PDOStatement类的bindParam()方法绑定数

据,最后使用execute()方法执行编译结果
例如:
$sql="insert into tablename value(":id",":name",":score")"//:站位字符名  表示站位字符
$statement  = $pdo->prepare($sql);   //返回一个PDOStatement对象
$statement->bindParam(":id",1)
$statement->bindParam(":name",name)
$statement->bindParam(":score",123)
$statement->execute();


PDO的错误预处理机制:

默认是静默模式


静默模式:
PDO默认情况下不提示错误出在哪里,只会报语法错误
如何获得错误出在哪里?
通过指定固定的方法获得错误信息
errorInfo()
errorCode()  获得错误的信息和错误编码

警告模式:
发出一个警告,警告你错误出在哪里了,代码还会继续往下走
如何从静默模式切换到 警告模式 或者 异常模式
setAttribute(参数1,模式名称;参数2,模式的值)  来实现的
模式名称:ATTR_ERRMODE
模式的值:PDO::ERRMODE_WARNING    PDO::ERRMODE_SILENT   PDO::ERRMODE_EXCEPTION  

异常模式:
出现错误之后会抛出一个异常,需要捕获这个异常,否则会报一个致命错误
捕获之后根据自己的需要,是让他显示呢,还是输出呢?
通过
try{
}catch(PDOException $e){
}
来捕获


主要通过更改类的变量来更改错误提示方式
其他请各位看官自己钻研吧。。。楼主也迷茫呢。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值