一尘不染

PHP PDO和MySQLi [重复]

mysql

我刚刚完成了PHP入门课程,并且在整个stackoverflow论坛上,人们都建议我切换到PDO,准备好的语句或MYSQLi,我对手册进行了简短的检查,但其中大部分内容使我无所适从。

到目前为止,我一直在使用mysql_ *函数,因此这些概念对我来说是新的。我认为它们用于访问和执行数据库特定的操作,但是我不确定。

那么PDO,预处理语句和MySQLi有什么区别,它们完成同一任务的功能不同吗?它们在脚本中兼容还是“选择其中一个”?最后,哪个提供了最佳性能?

更新:感谢您的回答,我将寻找更多的PDO教程。


阅读 214

收藏
2020-05-17

共1个答案

一尘不染

在基本级别上,mysql,mysqli和PDO扩展都回答了 如何与数据库对话 的问题
它们都提供了连接数据库以及从数据库发送和检索数据的功能。您可以同时使用它们,一次建立到数据库的多个连接,但这通常是胡说八道。

mysql *是一个非常简单的扩展,基本上可以让您连接到数据库,向其发送SQL查询,而没有太多其他事情。
mysqli通过添加参数化查询和其他一些东西来改善这一点(顾名思义)。
PDO是将多个数据库驱动程序抽象到一个包中的扩展,即它允许您使用相同的代码连接到MySQL,Oracle,MS SQL
Server和许多其他数据库,而无需使用特定于数据库的扩展或在需要时重写代码您切换数据库(至少在理论上)。它还支持参数化查询。

如果您知道将专门使用MySQL,那么mysqli是一个不错的选择。特别是因为您可以按程序方式使用它,所以您已经习惯了mysql扩展。如果您不熟悉OOP,那会很有帮助。否则,PDO是一个不错的面向对象的灵活数据库连接器。


*请注意,现在 不建议使用 mysql扩展名,以后将在某个时候删除它。这是因为它是古老的,充满了不良做法,并且缺乏一些现代功能。不要用它来编写新代码。

2020-05-17