博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PDO的使用
阅读量:6332 次
发布时间:2019-06-22

本文共 1882 字,大约阅读时间需要 6 分钟。

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语句

   例子:

<?php
function 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

 

转载于:https://www.cnblogs.com/vitalizer/p/5521082.html

你可能感兴趣的文章
eclipse html 打开方式
查看>>
[求助] win7 x64 封装 出现 Administrator.xxxxx 的问题
查看>>
人类投资经理再也无法击败电脑的时代终将到来了...
查看>>
一个最小手势库的实现
查看>>
HoloLens开发手记 - Vuforia开发概述 Vuforia development overview
查看>>
Android支付之支付宝封装类
查看>>
Javascript模板引擎插件收集
查看>>
<亲测>CentOS中yum安装ffmpeg
查看>>
【分享】马化腾:产品设计与用户体验
查看>>
【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
查看>>
降低数据中心能耗的六大环节从主要能源着手
查看>>
用友优普智能制造助华菱线缆实现3个人15亿排产
查看>>
全智慧的网络:思科十年来最具颠覆性的创新
查看>>
怎样将现有应用迁移到 VMware NSX
查看>>
赛门铁克收购以色列移动安全初创公司Skycure 旨在构建网络安全防御平台
查看>>
《Photoshop蒙版与合成(第2版)》目录—导读
查看>>
《团队软件过程(修订版)》—第1章1.3节TSPi的设计
查看>>
“最佳人气奖”出炉!4月27号,谁能拿到阿里聚安全算法挑战赛的桂冠?
查看>>
《写给程序员的数据挖掘实践指南》——第1章 数据挖掘简介及本书使用方法...
查看>>
《网页美工设计Photoshop+Flash+Dreamweaver从入门到精通》——2.6 图层与图层样式...
查看>>