PHP 认识PDO数据库抽象层

PDO全称是PHP Data Object(PHP数据对象),是PHP连接数据库中的一个扩展,目前得到普遍使用。PDO主要解决的问题是为不同的数据库提供一个统一的数据访问接口和操作层。为实现系统在跨数据库平台的开发及迁移等问题上提供了较好的解决方案。PDO 对象的获取
在PDO中,要建立与数据库的连接需要实例化PDO的构造函数。PDO构造函数语法如下:
PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )
通过PDO构造函数来连接数据库:

 1 <?php
 2 $dbms = ‘mysql‘;
 3 $dbName = ‘dormitory‘;
 4 $host = ‘localhost‘;
 5 $user = ‘root‘;
 6 $pwd = ‘‘;
 7 $dsn = "$dbms:host=$host;dbname=$dbName";
 8 try {
 9     $pdo = new PDO($dsn, $user, $pwd);
10     echo ‘连接成功!‘;
11 } catch (Exception $e) {
12     echo $e->getMessage() . "<br>";
13 }
14 ?>

3种方法执行sql语句
执行sql语句的方法有:exec(),query(),prepare()+execute()。
1、exec()方法用于执行input,delete,update语句,返回值为受影响的行数;
2、query()方法用于执行select语句,返回值为一个二位数组;
3、预处理语句prepare()+execute(),可以用于执行input,delete,update,select语句,
可以把预处理语句看成想要运行的SQL的一种编译过的模板,他可以使用变量参数进行定制,做到查询时只需解析一次就可以执行多次;
如果应用程序只使用预处理语句,可以确保不会发生SQL注入
PDO::prepare()返回值为一个PDOStatement对象,对象的内容为prepare()方法里面的参数;
PDO::execute(),检查sql是否可执行,返回值为一个boolean类型。
从预处理语句的返回值也可以看出,他并没有真正的执行sql语句,而是检查sql的正确性,准备好执行的状态,等到需要用到结果集的时候再执行。

 1 <?php
 2             include_once ‘./pdo_db_conn.php‘;
 3             try {
 4                 $query = "select * from building";
 5 //                $result = $pdo->query($query);//结果为一个二维数组
 6                 $result = $pdo->prepare($query);
 7                 var_dump($result);
 8                 $flag = $result->execute();
 9                 var_dump($flag);
10             } catch (Exception $e) {
11                 echo $e->getMessage();
12             }
13             ?>

返回值:

object(PDOStatement)[2]
  public ‘queryString‘ => string ‘select * from building‘ (length=22)

boolean true

3种方法获取结果集
获取结果集的方法有fetch(),fetchAll(),fetchColumn();
fetch()方法获取结果集中的下一行,是一个数组;
fetchAll()方法获取结果集中的所有行,是一个数组;
fetchColumn()方法获取结果集中下一行指定的列的值。
三个方法的调用对象类型为PDOStatement对象类型,一般是在预处理语句之后执行

3种方法捕获sql语句中的错误的方式
当执行sql语句出现错误是,可以根据设置的错误提示方式,来决定显示错误的方法。
错误提示方式有:
1、PDO::ERRMODE_SILENT
默认方式,出现错误时程序继续执行,无错误提示。
2、PDO::ERRMODE_WARNING
出现错误时会继续执行,错误的部分会提示警告信息。
3、PDO::ERRMODE_EXCEPTION
出现错误时不会继续执行,错误的部分会提示异常信息。

2种方法获取程序错误信息
当执行sql语句出现错误是(访问数据库部分,对结果集的遍历错误不会提示),可以通过errorCode(),errorInfo()两个方法在后台输出错误信息,当sql语句是通过预编译执行的,这两个方法不适用。当在程序中调用errorCode()方法后,返回值为00000(5个0)时,表示程序没有错误,但返回其他5个字符时,表示程序是有错误的,这时可以通过调用errorInfo()方法来查看具体错误的信息。

时间: 2024-10-12 15:24:40

PHP 认识PDO数据库抽象层的相关文章

自己写好的pdo数据库抽象层 mysql为例

class pdo_database{ function __construct($type_database,$host_name,$dbname,$user_role,$pass_role,$sql){ $dbms=$type_database; //数据库类型 Oracle 用ODI,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数了 $host=$host_name; //数据库主机名 $dbName=$dbname;    //使用的数据库 $user=$user_r

PDO数据库抽象层

new PDO($dsn,$username,$passwd[,$options]) $options可以设置数据库连接属性,如: $options=array(PDO::ATTR_AUTOCOMMIT=>0,PDO::ATTR_AUTOCOMMIT=>PDO::ERRMODE_EXCEPTION); exec()不能进行select操作:若sql语句错误,exec()返回false errorInfo()返回值是数组,包含:0->SQLSTATE,1->错误码,2->错误信

初识PDO数据库抽象层

目录: 00x1 php中的pdo是什么? 00x2 pdo创建一个PDO对象 00x1 php中的pdo是什么? 就是操作数据库的方法,pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验证而已. 果要开启某个PDO直接在PHP.ini当中激活即可.(直接将分号去除即可) 详细的开启服务可以在phpinfo下面查询即可. 00x2 创建一个PDO对象? mysql连接数据库的方式是 <?php mysql_connect("localhost","root&

面向对象第七天----数据库抽象层PDO

php操作mysql方法:mysqlmysqliPDO 数据库抽象层--PDO (重点)======================================================================= 1. pdo的作用 pdo(php data object) 扩展类库,为PHP访问数据库提供了轻量级的,统一的接口.无论使用 什么数据库,都可以通过一致的函数执行查询和获取数据 优势: ① 对不同的数据库提供统一的操作方式 ② 对执行批量SQL效率高,对PHP操作S

PHP数据库抽象层--PDO(PHP Data Object) [一]

1.简介:(PDO数据库访问抽象层,统一各种 数据库的访问接口 ) PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能. 注意利用 PDO 扩展自身并不能实现任何数据库功能:必须使用一个 具体数据库的 PDO 驱动 来访问数据库服务. PDO 提供了一个 数据访问 抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据. PDO 不不提供 数据库 抽象层:它不会重写

数据库抽象层 - PDO

数据库抽象层: 在数据迁移和项目操作多数据库时,为了便于操作而提供一种的解决方案. 当从一个数据库系统向另一个数据库系统迁移时,几乎不用更改太多的程序代码,如将MS SQL Server迁移到MySQL. 代码规划必须规范,尽量使用相同的数据进行对象实例化,并且使用相同的数据库抽象层(如PDO).这样只需要改变系统的配置文件即可迁移数据库. 目前,使用PHP进行不同的数据库系统开发,这些系统很不相同,而许多数据库抽象层在PHP的层次有所不同,但彼此使用方法相当,它的发展无疑会提高开发效率. 常见

《细说PHP》第四版 样章 第18章 数据库抽象层PDO 2

18.2  PDO所支持的数据库 使用PHP可以处理各种数据库系统,包括MySQL.PostgreSQL.Oracle.MsSQL等.但访问不同的数据库系统时,其所使用的PHP扩展函数也是不同的.例如,使用PHP的MySQL或MySQLi扩展函数,只能访问MySQL数据库:如果需要处理Oracle数据库,就必须安装和重新学习PHP中处理Oracle的扩展函数库,每种数据库都有对应的扩展函数,如图18-3所示.应用每种数据库时都需要学习特定的函数库,这样是比较麻烦的,更重要的是这使得数据库间的移植

数据库抽象层PDO

PDO(PHP Data Object),数据库访问抽象层,统一各种数据库的访问接口. PDO特性:编码一致性.灵活性.高性能.面向对象特性. PDO只是一个抽象的接口层,本身并不能操作数据库. 一.PDO安装与配置 1.配置PHP配置文件,开启相应扩展 extension = php_pdo.dll 2.开启响应数据库扩展 extension = php_pdo_mysql.dll 3.通过查看phpinfo可以看到PDO扩展的详细信息 二.PDO连接数据库 1.通过参数的形式连接数据库[建议

《细说PHP》第四版 样章 第18章 数据库抽象层PDO 1

现在,如果你已经能熟练地使用MySQL客户端软件来操作数据库中的数据,就可以开始学习如何使用PHP来显示和修改数据库中的数据了.PHP提供了标准的函数来操作数据库.在PHP 5以上的版本中可以使用MySQL和MySQLi两套扩展函数,MySQLi是PHP 5中新增的,是对MySQL扩展的改进.但由于历史遗留问题,很多老项目是在PHP 4时使用MySQL扩展开发的,如果在原有的项目上进行二次开发,或者找一些学习的例子,都要求开发人员会使用MySQL扩展函数.如果是新设计的项目,则推荐使用MySQL