PDO数据库抽象类库的操作

PDO简单介绍:

背景:随着php使用的广泛,使用不同数据库也是十分常见的。php需要支持更多的数据库连接接口,如果只是通过单一的接口针对单一的数据库进行编写程序,这很大程度上提升了php的复杂度和学习门槛。PDO的出现就是为了解决这个问题。

PDO:PDO是php data Object的缩写,为php访问数据库定义了轻量级的、一致性的接口。它提供了一个数据访问抽象层,不管php连接的是什么数据库都可以通过一致的函数执行查询和获取数据。PDO在php5.1发行时开始附带,php之前的版本不支持PDO的类库

特性:

(1)灵活性,可以在php运行期间,直接加载新的数据库而不需要在新的数据库使用时,重新设置和编译。

(2)面向对象性:通过对象来控制数据库的使用。

(3)速度快,由于PDO是用C语言编写且编译进php的,所以比那些用php编写的抽象类快得多。


PDO的安装:

由于PDO类库是php5自带的类库,所以使用PDO类库只需要在php.ini中把关于PDO类库的配置前面的注释符号去掉。首先启用extension=php_pdo.dll类库,这个类库是PDO类库本身。然后根据需要开启不同数据库驱动类库。比如mysql数据库的驱动类是extension=php_pdo_mysql.dll。


PDO操作mysql数据库:

PDO的构造函数实现php连接数据:new PDO( DSN , username , password , driver_options )

其中,DSN是一个数据源名称,它由数据库服务器类型、数据库服务器地址、数据库名组成,格式如下:

'数据库服务器类型:host=数据库服务器地址;dbname=数据库名'

username是接入数据源的用户名,password是用户密码,driver_options是特定连接要求的其他参数,可选。


PDO连接mysql数据库和执行SQL选择语句的实例:


    
    getMessage();
	}
	$sql = "select * from test";
	$result = $db->query($sql);
	$rowcount = $result->rowCount();
	echo "查询到".$rowcount."条";
	$rows = $result->fetchAll();
	foreach ($rows as $row) {
		var_dump($row);
	}
?>
或者:

    
    getMessage();
	}
	$sql = "select * from test";
	$result = $db->query($sql);
	$rowcount = $result->rowCount();
	echo "查询到".$rowcount."条";
	while($row = $result->fetch(PDO::FETCH_ASSOC)){
		var_dump($row);
	}
?>

PDO执行SQL添加、修改、删除语句的实例,执行这些语句时都是通过exce()来实现,而选择语句不能:


   
   getMessage();
	}
	$sqlinsert = "insert into test(name,id) values('sam',3)";
	$sqlupdate = "update test set name='jack' where name='sam'";
	$sqldelete = "delete from test where name='jack'";
	if($db->exec($sqlinsert)){
		echo "insert success";
	}
	if($db->exec($sqlupdate)){
		echo "update success";
	}
	if($db->exec($sqldelete)){
		echo "delete success";
	}
?>

PDO的prepare使用

使用情景:频繁使用的sql语句结构都相同,如经常使用insert,仅每一项具体的数值都不同。prepare表述可提供改变的变量值,不改变sql语句,以减少解析过程、节省资源、提高效率。

使用prepare表述需要通过两个方法:一个是prepare()方法,另一个是execute()方法。


<?php
	try{
		$db = new PDO('mysql:host=localhost;dbname=test','root','djr');
	}catch(PDOException $e){
		echo "Connection error message:".$e->getMessage();
	}

	$sqlinsert = "insert into test set id=:id,name=:name";
	$preparedb = $db->prepare($sqlinsert);

	if($preparedb->execute(array(
		":id" => "111",
		":name" => "jenen dunran"
		))){
		echo "insert success";
	}

?>












Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值