PDO是什么?
PDO是别人写的“数据库操作工具类”!——它可以代替我们自己写的MySQLDB.class.php.
使用它,类似这样:
$pdo = new PDO(连接信息);
$sql = “select * from .....”;
$result = $pdo->query($sql); //返回一个“pdo结果集”;
$sql = “delete / update / insert ........ ”;
$result2 = $pdo->exec($sql); //返回一个真假值;
手册可以找到:
函数参考》数据库扩展》数据库抽象层》PDO;
具体应用的时候,其实,其中有这样的一个关系:
使用pdo连接mysql数据库
例子:
<?php$conn = new PDO('mysql: host=localhost;dbname=php39;port=3306;charset=utf8','userName','password');?>
-
- 执行SQL语句
例子:
<?phpfunction getFruit($conn) { $sql = 'SELECT name, color, calories FROM fruit ORDER BY name'; foreach ($conn->query($sql) as $row) { print $row['name'] . "\t"; print $row['color'] . "\t"; print $row['calories'] . "\n"; }}?>
错误预处理方式:
异常模式
可以简单理解为:适应面向对象语法的处理错误的一种语法结构。如下所示:
try{
在这里,可以执行“可能出错”的语句(多条也可以);
一旦发生错误,就会终止当前范围的后续程序执行,
而立即跳转到catch部分——处理错误!
}
catch( Exception $e ){
//一旦发生错误,就会进入这里,此时,并会生成一个“错误对象”;
//该错误对象,就是系统类Exception的一个实例:它包含了错误信息。
}
pdo要使用异常模式,就得专门设置(因为其默认是静默模式):
Example #1 创建 PDO 实例并设置错误模式
<?php$dsn = 'mysql:dbname=testdb;host=127.0.0.1';$user = 'dbuser';$password = 'dbpass';try { $dbh = new PDO($dsn, $user, $password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);} catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage();}?>
$result = $pdo->query(“返回结果集的sql语句”); //对比最原始的函数: mysql_query(“select ..... “)
结果:
成功:就是一个pdo结果集对象;
失败:false;
$result = $pdo->exec(“增删改的sql语句”);
结果: true(表示成功),false(表示失败);
$pdo = null; //销毁该对象;
其他操作:
- $pdo->lastInsertId();
- 获取最后添加的id值;
- $pdo->beginTransaction();:
- 开启一个事务
- $pdo->commit()
- 提交一个事务
- $pdo->rollBack();
- 回滚一个事务;
- $pdo->inTransaction();
- 判断当前行是否在事务中,返回true/false
- $pdo->setAttribute(属性名,属性值);
- 设置pdo对象的属性值;
- 举例:$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
$pdo->begintrsaction();
$pdo->exec(“insert ....”);
$pdo->exec(“delete ....”);
$v1 = $pdo->intransaction(); //结果是true