PDO--------(PHP Data Object)

PDO是php工程师为了弥补mysqli不能操作其他数据库开发出来的一个可以操作所有数据源(Dsn)的数据库扩展类。

php学习之路:LAMP(LNMP,LNSP)--即:linux,apache,mysql,php

PDO有三大主要类:Pdo类(主要用于pdo调优);PdoStatement类(主要用于处理数据操作,包括预处理和结果集);PdoException类(主要用于处理PDO异常)

pdo类:

     $pdo -> setAttribute( PDO::ATTR_AUTOCOMMIT , false );

//setAttribute设置调优常量

pdo的getAttribute获取调优常量//注意下在操作中要作为一个类的属性即PDO::XXX

PDO_ATTR_AUTOCOMMIT //获取自动连接

PDO_ATTR_CASE //强制列名为指定的大小写

PDO_ATTR_CLIENT_VERSION //当前客户端的版本

PDO_ATTR_CONNECTION_STATUS //

PDO_ATTR_DRIVER_NAME //

PDO_ATTR_ERRMODE //

PDO_ATTR_ORACLE_NULLS //

PDO_ATTR_PERSISTENT //当前是否持久链接

PDO_ATTR_PREFETCH //

PDO_ATTR_SERVER_INFO //当前服务器信息

PDO_ATTR_SERVER_VERSION //当前服务器的版本

PDO_ATTR_TIMEOUT //

//不做过多意解,详细可参考php.net查看

echo "当前是否持久链接:".$pdo -> getAttribute( PDO::ATTR_PERSISTENT )."<br />";



PDOStatement类

帮我们准一个语句和在PDO中对象的exec()以及query()相比

优点: 执行效率高

安全性更高

帮我们处理结果集

是推荐使用

//$sql = "delete from news where id in(35,36,37)";

$sql = "update news set name='vvv where id in(38,39)";

$rows = $pdo -> exec( $sql );

echo "---affected rows {$rows} ";



$pdo -> exec( "SET NAMES UTF8" );//设置字符,防止插入或者更新出现乱码


关于类的预处理技术:

$sql = "insert into user(id,name,sex)values(?,?,?)";

$ptmt = $pdo -> prepare( $sql ); //把语句放到mysql数据里面记性存储。预处理


$ptmt -> bindParam(1,$id,PDO::PARAM_STR);

$ptmt -> bindParam(2,$name,PDO::PARAM_STR);

$ptmt -> bindParam(3,$sex,PDO::PARAM_STR);

$ptmt->execute();

类的别名技术:

$sql = "insert into news(title,contents,addTime)values(:title,:contents,:date)";

$ptmt = $pdo -> prepare( $sql ); //把语句放到mysql数据里面记性存储。预处理

$ptmt->execute( array( ":title"=>"简化名子{$i}",":contents"=>"名子{$i}",":date"=>date("Y-m-d H:i:s") ) );


关于pdo的异常处理机制,无需自己太多定义,可以直接继承原有的,

通过throw抛出,catch捕抓即可



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕斯先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值