为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL,MySQLi和PDO有什么区别?

MySQL,MySQLi和PDO有什么区别?

浮云间 2019-09-20 17:04:49
MySQL,MySQLi和PDO有什么区别?哪一个最适合与PHP-MySQL一起使用?
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

从PHP中使用MySQL有三种流行的方法。这概述了PHP的一些特性/差异:选择API:


(已弃用)mysql函数是程序性的,并使用手动转义。

MySQLi是mysql函数的替代品,具有面向对象和过程版本。它支持准备好的陈述。

PDO(PHP数据对象)是一个通用的数据库抽象层,在许多其他数据库中支持MySQL。它提供准备好的语句,并在返回数据方面具有显着的灵活性。

我建议将PDO与准备好的语句一起使用。它是一个设计良好的API,如果需要,可以让您更轻松地移动到另一个数据库(包括任何支持ODBC的数据库)。


查看完整回答
反对 回复 2019-09-20
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

这些是访问MySQL后端的不同API


在MySQL的是历史API

该mysqli的是历史API的新版本。它应该表现更好,并具有更好的功能集。此外,API是面向对象的。

PDO_MySQL是PDO的MySQL。PDO已经在PHP中引入,该项目旨在为所有数据库访问创建一个通用API,因此从理论上讲,您应该能够在不更改任何代码的情况下在RDMS之间进行迁移(如果您在查询中不使用特定的RDBM函数) ),也是面向对象的。

所以这取决于你想要生成什么样的代码。如果您更喜欢面向对象的图层或普通函数......


我的建议是


PDO

库MySQLi

MySQL的

我的感觉,mysql API可能会在将来的版本中被删除PHP。


查看完整回答
反对 回复 2019-09-20
?
守着一只汪

TA贡献1872条经验 获得超3个赞

具体来说,MySQLi扩展提供了以下非常有用的优点,而不是旧的MySQL扩展。

OOP接口(除程序外)准备语句支持事务+存储过程支持更高语法速度改进增强调试

PDO扩展

PHP Data Objects扩展是一个数据库抽象层。具体来说,这不是MySQL接口,因为它为许多数据库引擎提供驱动程序(当然包括MYSQL)。

PDO旨在提供一致的API,这意味着当数据库引擎发生更改时,代码更改以反映这应该是最小的。使用PDO时,只需更改您正在使用的驱动程序,您的代码通常就可以在许多数据库引擎中“正常工作”。

除了跨数据库兼容之外,PDO还支持使用MySQL驱动程序的预处理语句,存储过程等。


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 823 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信