mysql pdo 的好处_mysqli或PDO-优缺点是什么? [关闭]

按照目前的情况,这个问题不适合我们的问答形式。 我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。 如果您认为此问题可以解决并且可以重新提出,

请访问帮助中心以获取指导。

6年前关闭。

已锁定 。 该问题及其答案被

锁定,因为该问题是题外话,但具有历史意义。 它目前不接受新的答案或互动。

在我们的位置上,我们在使用mysqli和PDO进行诸如准备好的语句和事务支持之类的操作之间有所分歧。 有些项目使用一个,另一些使用。 我们迁移到另一个RDBMS的现实可能性很小。

我更喜欢PDO,这是因为它允许预准备语句使用命名参数,而据我所知mysqli不允许。

在我们将项目合并为仅使用一种方法时,是否有其他选择作为标准的利弊?

#1楼

如果您的站点/ Web应用程序真正成为现实,那么PDO将使扩展变得容易得多,因为您可以每天设置主从连接来在数据库中分配负载,此外PHP正朝着将PDO迁移为标准的方向发展。

#2楼

要记住一件事。

Mysqli不支持fetch_assoc()函数,该函数将返回带有表示列名的键的列。 当然,可以编写自己的函数来做到这一点,虽然还不算很长,但是我确实很难编写它(对于非信奉者:如果您觉得很容易,请自行尝试一下,不要这样做。 t作弊:))

#3楼

PDO有MySQLi我不真正喜欢的一件事是PDO能够将结果作为指定类类型的对象返回(例如$pdo->fetchObject('MyClass') )。 MySQLi的fetch_object()将仅返回一个stdClass对象。

#4楼

将应用程序从一个数据库迁移到另一个数据库并不常见,但是迟早您可能会发现自己正在使用不同的RDBMS处理另一个项目。 如果您在家中使用PDO,那么到那时至少要少学习一件事。

除此之外,我发现PDO API更加直观,并且感觉更加面向对象。 如果您知道我的意思,mysqli感觉这只是一个已被对象化的过程API。 简而言之,我发现PDO更易于使用,但这当然是主观的。

#5楼

编辑答案。

在对这两种API都有一定的经验之后,我会说有2种阻止级别的功能,这些功能使mysqli无法与本机预处理语句一起使用。

他们已经在2个出色的答案中被提及(但被低估了):

(在此答案中也都提到了)

由于某种原因,mysqli都失败了。

如今,第二个版本( get_result )有了一些改进,但是它仅适用于mysqlnd安装,这意味着您不能在脚本中依赖此功能。

但是直到今天,它都没有按值绑定。

因此,只有一种选择: PDO

所有其他原因,例如

命名的占位符(此语法糖被高估了)

不同的数据库支持(实际上没有人使用过)

获取对象(只是无用的语法糖)

速度差(无)

并不重要。

同时,这两个API都缺少一些真正重要的功能 ,例如

标识符占位符

复杂数据类型的占位符,以使动态绑定的工作量减轻

较短的应用程序代码。

因此,为了满足现实生活的需求,必须基于这些API之一创建自己的抽象库,以实现手动解析的占位符。 在这种情况下,我更喜欢mysqli,因为它的抽象级别较低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值