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("提交失败!");
}
网友评论