我刚刚完成了 PHP 入门课程,整个 stackoverflow 论坛上的人们都建议我切换到 PDO、准备好的语句或 MYSQLi,我简单地检查了手册,但其中大部分内容都超出了我的理解范围。
到目前为止我一直在使用 mysql_* 函数,所以这些概念对我来说是新的。我认为它们用于访问和执行数据库特定操作,但我不确定。
那么 PDO、准备好的语句和 MySQLi 之间有什么区别,它们是完成相同任务的不同功能吗?它们在脚本中是否兼容,或者是“选择其中之一”?最后哪个提供最好的性能?
更新:感谢您的回答,我将寻找更多 PDO 教程。
作为参考,我还发现以下帖子很有用:
mysqli 和 PDO 哪个又快又轻 https://stackoverflow.com/questions/10696696/which-one-is-fast-and-light-mysqli-or-pdo
mysqli 或 PDO - 优缺点是什么? https://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons
在基础层面上,mysql、mysqli 和 PDO 扩展都回答了这个问题我如何与数据库对话?它们都提供连接到数据库并从中发送和检索数据的函数和功能。您可以同时使用它们,一次建立多个与数据库的连接,但这通常是无意义的。
mysql* 是一个非常简单的扩展,基本上允许您连接到数据库,向其发送 SQL 查询,仅此而已。
mysqli 通过添加参数化查询和其他一些东西来改进这一点(顾名思义)。
PDO 是一种将多个数据库驱动程序抽象到一个包中的扩展,即它允许您使用相同的代码连接到 MySQL、Oracle、MS SQL Server 和许多其他数据库,而无需使用数据库特定的扩展或重写代码您切换数据库(至少在理论上)。它还支持参数化查询。
如果您知道您将只使用 MySQL,那么 mysqli 是一个不错的选择。特别是因为您可以以程序方式使用它,您已经习惯了 mysql 扩展。如果您不熟悉 OOP,这会很有帮助。除此之外,PDO 是一个很好的面向对象的、灵活的数据库连接器。
* 注意mysql扩展is now 已弃用并将在将来的某个时候被删除 http://www.php.net/manual/en/mysqlinfo.api.choosing.php。这是因为它是古老的,充满了不良做法,缺乏一些现代特征。不要用它来编写新代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)