美文网首页
PDO 基础用法

PDO 基础用法

作者: 狂暴小绵羊 | 来源:发表于2020-06-06 16:19 被阅读0次

PDO 为操作数据库的中间件,简化了操作数据库的过程 基础操作

  • 实例化
  //$dsn="数据库类型:host=主机地址;dbname=数据库名";
  //$pdoObj = new POD($dsn,用户名,密码);
  $dns='mysql:host=127.0.0.1;dbname=tp_blog';
  $pdoObj=new PDO($dns,'root','');
  • 设置编码

    //设置客户端与数据库交互的编码
    $pdoObj->exec('set names utf8');
    
  • 获取报错信息

      var_dump($pdoObj->errorInfo());
    
  • query()

      //执行有返回值的sql语句
      $sql="select * from tp_cate";
      $obj=$pdoObj->query($sql);
    
  • exec()

      //执行非查询的sql语句
      $sql="update tp_cate set catename='java' where id=1";
      $pdoObj->exec($sql);
    
  • fetch()

      //获取执行后对象的值,单条获取。参数:PDO::FETCH_ASSOC(关联数组) PDO::FETCH_NUM(索引数组)
      $result=[];
      while($row=$obj->fetch(PDO::FETCH_ASSOC)){
          $result[]=$row;
      }
      var_dump($result);
    
  • fetchAll()

      //获取执行后的值,获取多条。参数:PDO::FETCH_ASSOC(关联数组) PDO::FETCH_NUM(索引数组);
      $result=$obj->fetchAll(PDO::FETCH_ASSOC);
    

PDO 中的预处理

  • prepare()
      //prepare() 对sql语句进行预处理
      $sql='select * from tp_cate where id=:id';
      $statement=$pdoObj->prepare($sql);
    
  • bindValue()
      //给预处的sql语句中的占位符绑定值并声明数据类型
      $statement->bindValue(':id',$id,PDO::PARAM_INT);
    
  • execute()
      //执行预处理的sql语句
      $obj=$statement->execute();
      $data=$statement->fetchAll(PDO::FETCH_ASSOC);
      var_dump($data);
    

PDO 中的事务操作

  • 例子
$dsn='mysql:host=127.0.0.1;dbname=tp_blog';
$dbobj=new PDO($dsn,'root','');
$dbobj->exec('set names utf8');
$dbobj->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //设置报错格式
try{
    $dbobj->beginTransaction();//开启事务处理
    $stmt=$dbobj->prepare("insert into tp_cate values(?,?,?,?,?,?)");
    $data=array(
    array(null,'pdo',1,2,3,null),
    array(null,'pdo',1,2,3,null),
    array(null,'pdo',1,2,3,null),
    array(null,'pdo',1,2,3,null)
    );
    foreach($data as $v){
        $stmt->execute($v);
        echo $dbobj->lastInsertId();
    }
    $dbobj->commit();
    echo "提交成功!";
}catch(PDOException $e){
    $dbobj->rollBack();//回滚
    die("提交失败!");
}

相关文章

网友评论

      本文标题:PDO 基础用法

      本文链接:https://www.haomeiwen.com/subject/nnzxtktx.html