有关PDO小结

来源:互联网 发布:mac读取移动硬盘 编辑:程序博客网 时间:2024/06/03 17:34
<?php/** * Created by PhpStorm. * User: zhukang * Date: 2017/10/14 * Time: 10:58 *///1.设置头信息header("content-type:text/html;charset=utf8");//2.实例化PDO对象$dbms="mysql";$dbname="project";$user="root";$password="zkzk";$dns="$dbms:host=localhost;dbname=$dbname";//$pdo=new PDO("mysql:host=localhost;dbname=project","root","zkzk");$pdo=new PDO($dns,$user,$password);/*PDO类 :PDO的核心,主要用于数据的连接、发送SQL语句等PDOStatement类 :主要用于解析结果集,实现预处理、事务处理等特殊功能PDOException类 :主要用于捕获PDO异常*//*mysql中的预处理//1、创建预处理语句prepare  预处理指令  from  SQL语句(insert/delete/update/select)//2、设置参数set @value = value;//3、执行预处理execute  预处理指令;*//*mysql中的事务处理① 开启事务1)标准事务:start  transaction;当提交或回滚一个事务之后,事务结束。接下来的操作不在事务操作范围之内。2)语句事务:set  autocommit = 0;当提交或回滚一个事务之后,事务不会终止,后面的操作仍处于事务之中。② 提交事务:commit;③ 回滚事务:rollback;*//*PDO中的异常捕获基本语法:try {    存在潜在错误的代码;    if(逻辑错误) {        //手工输出异常        throw  new  PDOException(‘错误的文本信息错误号’);}} catch(PDOException $e) {    echo ‘错误号:’.$e->getCode();   echo ‘错误行号:’.$e->getLine();   echo ‘错误的文本信息:’.$e->getMessage();*/#$pdo下的一些方法//1.SQL insert update delete 的操作$num=$pdo->exec($sql);//2.最后一条插入的ID$pdo->lastInsertId();//3.select 返回的是一个结果集 statment对象$statment=$pdo->query($sql);//4.定义预处理语句$statment=$pdo->prepare($sql);//5.开启事务处理$pdo->beginTransaction();//6.提交事务$pdo->commit();//7.回滚事务$pdo->rollBack();//8.设置属性$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//9.获取常用属性值$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);//自动提交$PDO->getAttribute(PDO::ATTR_CASE);//大小写$PDO->getAttribute(PDO::ATTR_PERSISTENT);//长连接//10.设置长连接$data=array(PDO::ATTR_PERSISTENT=>true);$pdo=new PDO($dsn,$user,$password,$data);//11.设置常用属性值$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);//关闭自动提交//结果集字段全部转化为小写2$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER);#$statment下的一些方法//1.返回数据表的总行/列数$statment->rowCount();$statment->columnCount();//2.把一条记录遍历到关联型数组中/*获取结果集的五种方法PDO::FETCH_ASSOC :把一条记录遍历到关联数组中PDO::FETCH_NUM :把一条记录遍历到索引型数组中PDO::FETCH_BOTH :把一条记录遍历到混合型数组中PDO::FETCH_OBJ :把一条记录遍历到对象中PDO::FETCH_BOUND (bindColumn) :把某个变量绑定到结果集中的某个列*/$statment->fetch(PDO::FETCH_ASSOC);//3.使用bindColumn实现列绑定 把变量$id绑定到结果集中的第一列$statment->bindColumn(1,$id);//4.制定fetch的绑定方式为PDO::FETCH_BOUND,否则bindColumn不会生效$statment->fetch(PDO::FETCH_BOUND);//5.把数据表中的所有记录返回到一个二维数组中$data=$statment->fetchAll(PDO::FETCH_ASSOC);//6.遍历结果集当前行的某一列信息 第几列,从0开始$id=$statment->fetchColumn(0);//7.定义预处理语句$statment=$pdo->prepare($sql);//8.使用execute实现参数传递$statment->execute($data);//9.绑定参数$statment->bindParam(":username",$username);//:文本标识符$statment->bindParam(1,$username);//?标识符#PDOExceptioncatch(PDOException $e);//$e对象下的一些方法$e->getCode();$e->getLine();$e->getMessage();/*PDO扩展技术总结 PDO扩展技术PDO的基本概念以及为什么需要PDOPHP Data Object PHP 数据 对象是一个轻量级的、具有兼容接口的php数据连接扩展。作用:连接不同类的数据库。 PDO类(增删改查)增删改:$pdo->exec($sql) 返回受影响的行数查询:$pdo->query($sql) 返回PDOStatement类,fetch方法、fetchAll方法、fetchColumn方法 PDO中的预处理减少SQL语句的传递,只传递相关的参数,这样可以减少带宽的浪费prepare  stmt1  from  ‘insert into tb_admin values (null,?,?,?)’;设置参数set @参数 = 参数的值;执行预处理execute  stmt1  using  @参数; PDO中的事务处理开启事务beginTransaction()提交事务commit()回滚事务rollback()⑤ 异常类PDOExceptiontry {    //存在潜在错误的语句    if(逻辑错误) {        //手工抛出异常        throw  new  PDOException(‘错误信息’,’错误号’);}} catch(PDOException $e) {    echo $e->getCode();    echo $e->getLine();    echo $e->getMessage();}⑥ 属性的设置与获取setAttributegetAttribute*/