PHP中MySQL、MySQLi和PDO的区别与选择

【转载】

PHP的MySQL扩展

网站建设设计开发允许PHP应用与MySQL数据库交互的早期扩展。mysql扩展提供了一个面向过程 的接口;

并且是针对MySQL4.1.3或更早版本设计的。因此,这个扩展虽然可以与MySQL4.1.3或更新的数 ;

据库服务端 进行交互,但并不支持后期MySQL服务端提供的一些特性。


PHP的mysqli扩展

mysqli扩展,我们有时称之为MySQL增强扩展,可以用于使用 MySQL4.1.3或更新版本中新的高级特性;

mysqli扩展在PHP 5及以后版本中包含;

mysqli扩展有一系列的优势,相对于mysql扩展的提升主要有:面向对象接口、 prepared语句支持、多语句执行支持、事务支持、增强的调试能力、嵌入式服务支持。

PHP数据对象(PDO)

PHP数据对象,是PHP应用中的一个数据库抽象层规范。PDO提供了一个统一的API接口可以,使得你的PHP应用不去关心具体要 连接的数据库服务器系统类型。也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器。

PHP-MySQL 是 PHP 操作 MySQL 资料库最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相对进阶的功能,就 Extension 而言,本身也增加了安全性。而 PDO (PHP Data Object) 则是提供了一个 Abstraction Layer 来操作资料库

1.mysql与mysqli

mysqli是php5提供的新函数库,(i)表示改进,其执行速度更快.当然也更安全

mysql是非持继连接函数而mysqli是永远连接函数。也就是说,mysql每次链接都会打开一个连接的进程而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销 有些朋友在编程的时候,使用new mysqli(‘localhost’, usenamer’, ‘password’, ‘databasename’);总是报错,Fatal error: Class ‘mysqli’ not found in d:\…

mysqli类不是php自带的吗?

不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的#;,Linux下要把mysqli编译进去。


2.PDO与mysql

PDO是PHP5.1之后才支持的,他为访问数据库采用了一致性的接口。

在链接MySQL上几乎没有区别。PDO的性能损失完全可以忽略不计。

但是却有非常多的操作却是MySQL扩展库所不具备的:

1:PDO真正的以底层实现的统一接口数库操作接口

2:PDO支持更高级的DB特性操作,如:存储过程的调度等,mysql原生库是不支持的.

3:PDO是PHP官方的PECL库,兼容性稳定性必然要高于MySQL Extension,可以直接使用 pecl upgrade pdo 命令升级. 

PHP6默认也是使用PDO进行数据库链接,MySQL Extension会作为辅助。

所以我们在日常网站建设项目中,如果环境允许,尽可能去使用PDO来进行MySQL数据库操作。





本文地址:http://www.snl.cn/article/161

↑上一篇: 网站设计行业现在什么状态?2018年
↓下一篇: iis下FastCGI 的常见Error错误

填写您的需求/意见获取项目报价。

*请认真详细填写需求信息(简单留言均不回复!!!!留言样板!!! 戳>>),SNL会在24小时内与您取得联系。
线上服务咨询扫码关注SNL020-86000345填写需求索取报价

Copyright © 2003-2021 SNL 版权所有 广州市天传计算机网络技术有限公司 粤ICP备14094397号