pdo - MySql数据库抽象连接中的利器
2017-01-09 16:21
302 查看
pdo是php中的扩展层 是抽象出来的类 优点是方便切换数据库和防止sql注入的问题 缺点时 操作起来 对数据的I/O速度会有一点影响 具体操作看当时的业务场景
连接数据库
pdo方法详解 < exec query >
PDO::exec() 在一个单独的函数调用中执行一条 SQL 语句,返回受此语句影响的行数。注意:不会从一条 SELECT 语句中返回结果
PDO::query() 在一个单独的函 数调用中执行一条 SQL 语句,返回结果集。
事物列举
参考文档: http://php.net/manual/zh/book.pdo.php
连接数据库
<?php try { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } ?>
pdo方法详解 < exec query >
int PDO::exec ( string $statement )
PDO::exec() 在一个单独的函数调用中执行一条 SQL 语句,返回受此语句影响的行数。注意:不会从一条 SELECT 语句中返回结果
int PDO::query ( sql )
PDO::query() 在一个单独的函 数调用中执行一条 SQL 语句,返回结果集。
事物列举
try{ $pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456", array(PDO::ATTR_AUTOCOMMIT=>0)); #一定要关闭自动提交 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); #开启异常模式 }catch(PDOException $e){ echo "数据库连接失败:".$e->getMessage(); exit; } //执行SQL语句 exec() query() prepare() //一是有结果集的query(), 执行select语句 //exec()用来执行有影响行数的,update, delete insert, other //exec()返回的是影响的行数 /* * * 事务处理 * * 张三从李四那里买了一台 2000 元的电脑 * * 从张三帐号中扣出 2000元 * * 向李四账号中加入 2000元 * * 从商品表中减少一台电脑 * * MyIsAM InnoDB * */ try{ $pdo->beginTransaction(); $price=500; $sql="update zhanghao set price=price-{$price} where id=1"; $affected_rows=$pdo->exec($sql); if(!$affected_rows) throw new PDOException("张三转出失败"); $sql="update zhanghao set price=price+{$price} where id=3"; $affected_rows=$pdo->exec($sql); if(!$affected_rows) #发现问题手动抛出异常 throw new PDOException("向李四转入失败"); echo "交易成功!"; $pdo->commit(); }catch(PDOException $e){ echo $e->getMessage(); $pdo->rollback(); //只要捕获异常则回滚 } //不管执行成功还是失败最后都要在关闭自动提交 $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1); //设置错误报告模式 ERRMODE_SILENT ERRMODE_WARNING
参考文档: http://php.net/manual/zh/book.pdo.php
相关文章推荐
- php pdo连接mysql数据库
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
- php连接mysql数据库的几种方式(mysql、mysqli、pdo)
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
- php pdo方式连接mysql数据库
- php使用PDO连接mysql数据库
- PHP连接mysql数据库之根据配置文件选择mysqli还是pdo方式
- PHP中使用PDO连接MySQL数据库查询相关内容
- php使用PDO连接mysql数据库
- PHP5使用PDO连接MySQL数据库 详解
- PDO连接mysql数据库
- PHP5使用PDO连接MySQL数据库 详解
- pdo连接mysql数据库(简洁明了)
- php连接到MySQL数据库服务器时三种主要的API:mysql,mysqli,pdo区别及联系
- php使用pdo连接mysql数据库如何设置发送的字符集?
- php连接到MySQL数据库服务器时三种主要的API:mysql,mysqli,pdo区别及联系
- mysql数据库的PDO连接方式
- php连接mysql数据库的几种方式(mysql、mysqli、pdo)
- 【末世旅行之PHP】PHP用PDO连接MySQL数据库工具类-增删改查
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)