从mysql迁移到mysqli或pdo?

时间:2009-04-21 02:04:10

标签: php mysql pdo mysqli

  

重复:mysqli or PDO - what are the pros and cons?

我希望将一个网站从mysql转移到mysqli或pdo作为主要的学习工具,但如果可能的话,还要提高性能。

我已阅读http://php.net/manual/en/mysqli.overview.php,似乎两者都符合我的需求,但无论如何都不会强烈倾斜。

该网站目前主要使用非面向对象的代码,但我确实有其他语言的OO经验。绝大多数查询都是简单的复杂select语句,只有很少的更新/插入。您对我自己的教育和这个特定网站最有用的建议是什么?

如果您需要任何其他信息,请告诉我们。

感谢。

5 个答案:

答案 0 :(得分:20)

PDO Pro:

  • 从5.x起原生于PHP
  • 支持命名参数 用数字索引?的
  • 相同的抽象库支持多个不同的RDBM

Mysqli Con's:

  • 有正确存储和问题的问题 检索中的大对象 数据库中。
  • 不支持命名参数。

否则,两个库基本上都是同一个东西的不同口味。它们都具有引用参数的功能,并且都支持参数化查询。

如果上述任何一个论点都没有影响你,那么根据它的语法,风格等,选择你喜欢的库。

答案 1 :(得分:9)

我不相信 PDO 会给你带来任何性能提升,但它会给你这两个非常有吸引力的长期好处:

  • 只需几次代码更改,您就可以扩展您的应用以使用其他数据库
  • PDO库具有内置的大部分安全性

如果你不理解#1和#2的好处,那么只需坚持使用经过验证的mysql库(你至少使用mysql_real_escape_string,对吧)?< / p>

如果我正在学习一个新的PHP数据库库,我相信PDO是可行的方法,特别是如果您正在创建一个可以在除您自己的服务器之外的各种系统上使用的Web应用程序。

答案 2 :(得分:8)

来自http://www.php.net/manual/en/mysqli.overview.php

  

虽然PDO有其优点,例如干净,简单,可移植的API,   它的主要缺点是它不允许你使用所有的   最新版本的MySQL中提供的高级功能   服务器。例如,PDO不允许您使用MySQL的支持   多个陈述。

答案 3 :(得分:4)

PDO提供了比其他没有太多麻烦的安全性,但是对于转换,我建议你转移到mysqli,因为它比PDO更快,更容易,并且大多数api /语法与旧的mysql扩展相同

请参阅此处(下方滚动)以快速比较:
PHP & MySQLi

编辑:看起来像你之前读过的链接一样,抱歉

答案 4 :(得分:1)

在构建我的ORM和抽象库时,我使用MySQLi和PDO来查看哪个更好。 MySQLi更快 - 但还不足以基于此做出选择。

MySQLi / MySQL / SQLite或任何其他独立库对PDO的一件事是它们返回结果中找到的行数,这通常有助于测试任何结果。同时,在PDO中,您可以使用fetchAll()结果和count()它们 - 或者在查看结果数之前运行计数查询。因此,您必须适应以不同方式处理此问题。

哦,我最终选择PDO而不是MySQLi。