品牌出海 -
外贸推广、英文网站营销、独立站SEO

PDO概念及总结

为什么要讲PDO:

(1)市面上使用最多的,大部分企业使用PDO
(2)Mysqli 只支持MySQL数据库,PDO支持大部分数据库

PDO概念及总结3)以后做的项目都是使用PDO作为数据库抽象层来实现的

mysqli——是MySQL数据库的加强:

(预处理机制)

(错误处理机制)

(采用了面向对象的编程模式)

一、PHP如何操作数据库

与具体数据库的扩展:php想操作那个数据库,需要开启这个数据库的扩展,提供操作这个数据库的函数

二、什么是PDO

PDO是一个mysql官方封装的,基于面向对象编程思想的,使用c语言开发的数据库抽象层

三、PDO数据库抽象的概念:

PDO抽象类

它是封装的一个类,就是一个控制数据库的新的操作方法

将具体的操作数据库的代码封装到数据库抽象层,如果出项数据库转移,只需在php代码里高速数据库抽象层,你去使用哪一个数据库就可以了

通过代码引出PDO

<?php

//写一个函数,根据传递的参数来操作不同的数据库

function mysql_db($type){

if($type==’mysql’){

mysql_connect();

mysql_select_db();

}elseif ($type==’mssql’){

mssql_connect();

mssql_query();

}elseif ($type==’oracle’){

// 具体操作某个数据库的函数

}

}

mysql_db(‘mysql’);

function mysql_q($type,$sql){

if($type==’mysql’){

mysql_query($sql);

}

}

?>

一、 如何使用PDO

和当前使用mysql非常像

要想使用mysql需要开启mysql扩展,

需想使用PDO,需要开启PDO扩展

获得PDO对象,调用方法

(1)要开启pdo驱动

Extension = php_pdo.dll

Extension = php_pdo_sqlite.dll

Extension = php_pdo_mysql.dll

开启这个扩展(驱动),就可以使用这个扩展给我们提供类了

(2)使用这个类,实例化这个类,调用属性和方法

<?php

//使用PDO操作数据库

//第一个参数:连接数据库的类型:主机名;数据库名

$dsc = ‘mysql:host=localhost;dbname=mysql_text’;

$user = ‘root’;

$pass = ‘123’;

$pdo = new PDO($dsc,$user,$pass);//实例化一个类的时候,会自动的先调用__construct()构造函数

//var_dump($pdo);

//执行sql语句获得

$sql = ‘select*fromgoods’;

$result = $pdo->query($sql);//query方法返回的是PDOStatement对象

//如果想获得具体的数据,需要调用对象的方法:fetchAll();参数是类常量,表示返回什么样的数据

$rows = $result->fetchAll(PDO::FETCH_BOTH);

//var_dump($rows);

//更新数据库的操作

$sql = ‘update goods set goods_name=”lalala” wheregoods_id=3’;

//执行增删改的语句,exec()方法,执行查询的语句 query()

//exec()返回受影响的函数 query()返回PDOStatement对象

$nums = $pdo->exec($sql);

var_dump($nums);

?>

二、 PDO预编译机制

先将sql语句的数据部分和费数据部分分离开————》将不带数据的部分预编译一下prepare()————》在编译结果上绑定数据bandparam()————》执行编译结果execute()

预编译的好处:1、减少了编译的字符数,编译的速度提高

2、如果再次执行同样的sql语句,直接绑定数据,减少编译sql语句时间

写代码实现PDO的预编译(与处理机制)

<?php

//预编译:PDO::prepare($sql); 返回PDOStatement对象

//绑定数据PDOStamentt->bindParam(); 给预编译的结果绑定数据

//执行编译结果 PDOStament->execute();

//使用PDO操作数据库

//第一个参数:连接数据库的类型:主机名;数据库名

$dsn = ‘mysql:host=localhost;dbname=mysql_text’;

$user = ‘root’;

$pass = ‘123’;

$pdo = new PDO($dsn,$user,$pass);

//var_dump($pdo);

//预编译:prepare();参数是不带数据的sql语句

//先将sql语句中的数据部分用占位符代替 :占位符名称

$sql = ‘insert intogoods values(null,:name,:price,:number)’;

$smt = $pdo->prepare($sql); //返回一个PDOStament 对象

//绑定数据 PDOStament对象的bindParam()来绑定参数:占位符,实际数据

$goods_name= ‘surface’;

$goods_price= ‘3500’;

$goods_num= ’41’;

$smt->bindParam(‘:name’,$goods_name);

$smt->bindParam(‘:price’,$goods_price);

$smt->bindParam(‘:number’,$goods_num);

$smt->execute();

?>

三、 PDO的错误处理机制:

(1)静默模式

默认情况下与mysql处理方式一致,不现实错误信息(静默模式)但是我们可以通过固定的方法获得错误信息

(2)警告模式

//更改属性设置错误处理模式

$pdo ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);

(3)异常模式,当发生错误时,抛出一个异常

$pdo ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$sql = ‘select*fromgood’;

try {

//尝试可能会处错误的代码

$pdo ->query($sql);

}catch (PDOException $e){

//现在捕获异常后,自己看着办,是让他显示出来呢,还是输出到日志文件里呢?

//通常是将错误信息输出到日志文件里

var_dump($e->getMessage());

file_put_contents(‘D://mysql.log’,$e->getMessage());

}

文章类别:外贸运营

如有转载,请注明本文链接: https://www.qi70.com/1115.html

赞(6) 外贸合作微信:Aiziji5267_
有任何问题或者外贸0-1建设合作联系微信:Aiziji5267_,本站点的内容仅供学习、分享与交流,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。知识文章以及源码仅供参考学习,当使用本站时,代表你已接受本站的声明和隐私原则等条款。70外贸通_外贸跨境电商运营推广网站 » PDO概念及总结
分享到: 更多 (0)
标签:

亚马逊、国际站代运营,独立站建设,外贸B2B、B2C合作加微信(w5267q) 抢沙发

专业网站运营,云服务器技术分享!

阿里云优惠购买购物优惠网

如有需要或者帮助可以加我微信:Aiziji5267_

支付宝扫一扫打赏

微信扫一扫打赏