PHP-------PDO:数据访问抽象层

PDO:数据访问抽象层

它是用来做数据访问的,和数据库之间连接,执行一些SQL语句

这种方式比之前的,Mysqli的方式功能更大一些

用一张图来说明:

人为写了一条SQL语句,是通过Mysqli的对象(封装好的类),通过Mysql驱动,然后在操作Mysql数据库。这是以前的方式。

如果这条SQL语句,想访问另外一个数据库,不是Mysql了,想用一下Oracle Call数据库或者SQL Server数据库,根据逻辑,应该还要有一个类是专门操作Oracle Call 数据库的类

同一张图来表示:

这条SQL语句在通过  类,找到Oracle Call数据库的驱动,在通过驱动,来访问Oracle Call数据库

还想访问另外一个数据库,想用一下SQL Server数据库,根据逻辑,应该还要有一个类是专门操作SQL Server 数据库的,

同一张图来表示:

还想访问其他数据库,再来一遍

由上可见,中间的每一个类,它所拥有的功能,都是不一样的,Mysqli 的功能就是连接Mysql数据库的,其他的类,这个类就是连接Oracle Call的数据库,再有一个类,这个类是来操作SQL Server数据库的。如果要换一个数据库的话,因为全都用的Mysqli做的,要修改代码。这样的话,就想能不能有一个东西,可以使用一条SQL语句,能够操作,所有的数据库。也就是说,换了数据库没有关系,这个程序照样可以使用,只不过换一个关键字就可以了。

用一个访问数据库的语句,就可改变来访问多个数据库,使用同一个访问语句,只需要改数据库的名称,就可访问多个数据库了,其他的都不需要动,只改数据库的名称就可以,这样做是为了让程序,到后期,如果想更改数据库,或者在做程序的时候,需要用到两个数据库的内容,这样做的话非常的方便。

所以就出来了,PDO,

PDO叫做数据访问抽象层

他实际上,就把中间的这一块,合并成同一个,它使用一个类,这个类里面,封装的很多的方法,使用这一个类,就去操作下面所有的数据库,这只要PHP装了这个数据库的驱动,就可以了,要是没装这个数据库的驱动,那是不能操作的,只要装了这个驱动,PDO就可以使用通一条语句,来操作所有的数据库,想换哪一个,就换一下名字就可以了。

PDO:数据访问抽象层

它实际上,就是把中间这一块合并成同一个,它使用一个类,类里封装了很多的方法,使用这一个类,类里面封装的很多的方法,使用类就来操作下面所有的数据库,只要PHP装了数据库的驱动,就可以了,要是没装数据库驱动是不可以的操作的,只要装了驱动 ,PDO就可以使用同一条语句,来操作所有的数据库,想换哪个,就换一下名字,就可以了。

数据访问抽象层,相当于一个抽象类,让用户看到的这一部分,实际上是一个抽象的,不涉及到一个具体的,这个数据库怎样连接,另外一个数据库怎样连接,不涉及一个具体的内容,就是一个抽象的,造一个连接,不要管连象什么地方怎么连的,就造一个连接,就好了,写SQL语句,执行SQL语句就完了,完全不用管,下面是什么数据库。比如,使用Mysqli,要连接Mysqli可能使用的方法是Mysqli里面的,如果要连接别的数据库有可能有另外一个类,另外一个类的方法,也不一样,这样一套程序是不能访问两个数据库的,如果要访问就需要修改代码风格。

但是使用PDO的话,就使代码风格不变,只改其中的关键字,就可以了,代码该怎样还是怎样的,查询是使用这个方法来执行的,所有的数据库查询都是使用这个方法来执行的,所以,数据访问抽象层,就让我们的程序的扩展性更加的好。

数据访问抽象层怎样使用呢???

它也是一个类,这个类叫PDO,所以我们再用它之前,需要造一个对象,也是关于PDO的对象,

$pdo=new PDO();   //()括号里需要参数

//$dsn 数据源,   $usernane 数据库的用户名,   $passwd 数据库的密码 ,

array $options参数需要一个数组

dsn 数据源  怎么写呢??

如果连接的是MySQL数据库,驱动的名称就叫做MYSQL;如果连接的是Oracle Call Interface数据库,驱动的名称就叫做 OCI ;如果连接的是Microsoft SQL Server / SQL Azure数据库,驱动的名称就叫做SQLSRV;  连的哪个数据库,就选择哪个驱动名就可以了

例子:

(驱动名)mysql(数据库名称)dbname (服务器地址)host

   

数据源是字符串

 

把数据源添加到它的第一个参数里

造了一个PDO的对象:$pdo = new PDO($dsn,"root","");

然后写SQL语句,再去执行SQL语句

query方法是来执行一条SQL语句的

exec方法,如果是增删改可以使用,这个方法

如果是一个额查询,可以使用query方法

 1 <?php
 2
 3 //pdo:数据访问抽象层
 4 //dsn:数据源;
 5 $dsn = "mysql:host=localhost;dbname=lianxi";//是个字符串
 6 //造了一个PDO的对象
 7 $pdo = new PDO($dsn,"root","");  //"root"用户名    ""密码
 8
 9 //写SQL语句
10 $sql = "select * from kemu";     //查询语句
11 //执行SQL语句
12 //PDO提供了一个方法可以来执行
13
14 $a = $pdo->query($sql);  //执行之后,有返回值,是$a
15 //$a是个什么东西,是不是一个数组,能不能去循环它
16
17 foreach($a as $v)      //就感觉它是一个二维数组
18 {
19   var_dump($v);
20
21 }
22
23 ?>

显示的结果:

 1 <?php
 2
 3 //pdo:数据访问抽象层
 4 //dsn:数据源;
 5 $dsn = "mysql:host=localhost;dbname=lianxi";//是个字符串
 6 //造了一个PDO的对象
 7 $pdo = new PDO($dsn,"root","");
 8
 9 //写SQL语句
10 $sql = "insert into kemu values(‘6‘,‘地理‘)";//添加数据
11 //执行SQL语句
12 //PDO提供了一个方法可以来执行
13
14 $a = $pdo->exec($sql);  //执行之后,有返回值,是$a
15 //$a是个什么东西,是不是一个数组,能不能去循环它
16
17 var_dump($a);
18
19 ?>

显示的结果:

上面的query方法和exec方法,不建议使用,但是要会。

时间: 2024-10-12 00:49:02

PHP-------PDO:数据访问抽象层的相关文章

PHP中关于PDO数据访问抽象层的功能操作

PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库  所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) 实例操作代码如下: <?php //1.造PDO对象$dsn ="mysql:dbname=mydb;host=localhost";//数据库类型:dbname=数据库名称;host=链接的ip或本机$pdo =new PDO($dsn,"root","root");//$dsn,帐号,密码

PDO 数据访问抽象层

//PDO //数据访问抽象层 <?php //1.操作其它数据库 //2.事务功能 //3.防止SQL注入攻击 //造PDO对象 //$dsn = "mysql:dbname=mydb;host=localhost"; //数据源 //$pdo = new PDO($dsn,"root","123"); //写SQL语句 //$sql = "select * from nation"; //$sql = "i

PDO(数据访问抽象层)、pdo事务功能和预处理功能---2017-05-05

之前所学的数据访问都是用mysqli做成类来访问的,但是mysqli这个类只是针对mysql这个数据库的:那么如果访问其他类型的数据库呢? 那么这就用到了PDO(数据访问抽象层). 一.关于PDO基本语句(以MySQL数据库为例,因为电脑没有其他的数据库) (1)造PDO对象 $dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); 格式: $dsn

PDO数据访问抽象层(上)

PDO比MySQLi功能强大 PDO可以访问MySQL及其它数据库 一.造对象 1 2 3 4 5 <?php     $dsn = "mysql:dbname = crud;host = localhost";     //mysql:MySQL数据库驱动dbname = crud:数据库名字 :host = localhost数据库地址     $pdo = new PDO($dsn,"root","123");//数据源,数据库用户名

PDO数据访问抽象层(下)

PDO两大功能 一.事务功能 PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作 1.造对象 1 2 3 4 <?php $dsn = "mysql:dbname=crud;host=localhost"; $pdo = new PDO($dsn,"root","123"); ?> 2.设置异常模式 1 $pdo->setAttribute(PDO

PDO:数据访问抽象层

<?php //PDO:数据访问抽象层 //带有事务功能: //dsn:数据源 $dsn="mysql:host=localhost;dbname=aaas"; //造pdo对象 $pdo=new PDO($dsn,"root","");//数据源,用户名,密码 //启动事务 $pdo->beginTransaction(); //写SQL语句 $sql="select * form Info"; //执行SQL语

数据访问抽象层PDO

通过数据访问抽象层PDO可以访问多个数据库 //数据访问抽象层PDO //造DSN:驱动名:dbname=数据库名:host=服务器地址 $dsn = "mysql:dbname=mydb;host=localhost"; //造PDO对象 $pdo = new PDO($dsn,"root","xiao8888"); //写SQL语句 $sql = "select * from Info"; //执行SQL语句 //我们不这

PDO:: 数据访问抽象层 ? :

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php //定义数据源 $dsn="mysql:dbname=test2;host=localhost"; //$dsn="sql

PDO是一个“数据库访问抽象层”

PDO是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高效. 目前而言,实现"数据库抽象层"任重而道远,使用PDO这样的"数据库访问抽象层"是一个不错的选择. PDO中包含三个预定义的类 PDO中包含三个预定义的类,它们分别是 PDO.PDOStatement 和 PDOException. 一.PDO PDO->be