pdo 实例

 

一、PDO
代表一个PHP和数据库之间的连接。

方法:

  1. PDO - 构造器,构建一个新的PDO对象
  2. beginTransaction - 开始事务
  3. commit - 提交事务
  4. errorCode - 从数据库返回一个错误代号,如果有的话
  5. errorInfo - 从数据库返回一个含有错误信息的数组,如果有的话
  6. exec - 执行一条SQL语句并返回影响的行数
  7. getAttribute - 返回一个数据库连接属性
  8. lastInsertId - 返回最新插入到数据库的行(的ID)
  9. prepare - 为执行准备一条SQL语句,返回语句执行后的联合结果集(PDOStatement)
  10. query - 执行一条SQL语句并返回一个结果集
  11. quote - 返回添加了引号的字符串,以使其可用于SQL语句中
  12. rollBack - 回滚一个事务
  13. setAttribute - 设置一个数据库连接属性

二、PDOStatement
代表一条预处理语句以及语句执行后的联合结果集(associated result set)。

方法:

  1. bindColumn - 绑定一个PHP变量到结果集中的输出列
  2. bindParam - 绑定一个PHP变量到一个预处理语句中的参数
  3. bindValue - 绑定一个值到与处理语句中的参数
  4. closeCursor - 关闭游标,使语句可以再次执行
  5. columnCount - 返回结果集中的列的数量
  6. errorCode - 从语句中返回一个错误代号,如果有的话
  7. errorInfo - 从语句中返回一个包含错误信息的数组,如果有的话
  8. execute - 执行一条预处理语句
  9. fetch - 从结果集中取出一行
  10. fetchAll - 从结构集中取出一个包含了所有行的数组
  11. fetchColumn - 返回结果集中某一列中的数据
  12. getAttribute - 返回一个 PDOStatement 属性
  13. getColumnMeta - 返回结果集中某一列的结构(metadata?)
  14. nextRowset - 返回下一结果集
  15. rowCount - 返回SQL语句执行后影响的行数
  16. setAttribute - 设置一个PDOStatement属性
  17. setFetchMode - 为 PDOStatement 设定获取数据的方式

 

 

 $db->exec("set names 'gbk'");  //设置编码   

//持久连接

  1. $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
  2.     PDO::ATTR_PERSISTENT => true;
  3. ));

 <?php
//预处理
$dbh = new PDO("mysql:host=localhost;dbname=chp31","uname","upwd");

$query = "select * from products order by title";
$result = $dbh->query($query);
$result->columnCount();//结果集总数


$query = "insert into product set sku=:sku,title=:title";
$stmt = $dbh->prepare($query);
$stmt->execute(array(":sku"=>"adsf",":title"=>"1234"));
$stmt->execute(array(":sku"=>"dgh",":title"=>"adf"));
//绑定参数
$dbh = new PDO("mysql:host=localhost;dbname=chp31","uname","upwd");
$query = "insert into product set sku=:sku,title=:title";
$stmt = $dbh->prepare($query);
$sku = "1234";
$title = "asdf";
$stmt->bindParam(":sku",$sku);
$stmt->bindParam(":title",$title);
$stmt->execute();

$stmt->bindParam(":sku","asdfadf");
$stmt->bindParam(":title","ccccccadf");
$stmt->execute();

//?
$query = "insert into products set sku=?,title=?";
$stmt->bindParam(1,"asdfadf");
$stmt->bindParam(2,"ccccccadf");
?>

 

<?php
$pdo=new PDO("mysql:host=localhost;dbname=test","root","root");
$pdo->exec("INSERT INTO `test`.`users` (`id` ,`uname` ,`upwd` ,`email` )VALUES (NULL , 'a', 'a', 'a');");
echo "newID:".$pdo->lastInsertId()."<br/>";
$result=$pdo->query("select * from users");
/*while($row=$result->fetch()){
 print_r($row);
}*/
$arr=$result->fetchAll();
print_r($arr);
?>

事物回滚

try{
  $dbh=new PDO('mysql:host=localhost;dbname=test','root','root',
      array(PDO::ATTR_PERSISTENT => true));
  echo"Connected\n";
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $dbh->beginTransaction();
  $dbh->exec("insert into users set uname='zsc',upwd='123',email='163'");
  $dbh->exec("insert into usersz set uname='zsc',upwd='123',email='163'");
  $dbh->commit(); 
}catch(Exception $e){
  $dbh->rollBack();
  echo"Failed: ".$e->getMessage();
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值