我是否应该将我的网站升级到PHP MySQLi或PDO?

时间:2016-02-25 07:58:26

标签: php mysql mysqli pdo

我使用PHP MySQL在5年前设计了一个网站,但仍然没有任何问题。我听说MySQL从PHP 5.5开始正式被弃用,并且从PHP 7开始被删除。此外,PHP提供了三种不同的API来连接MySQL(如MySQL,MySQLi和PDO)。我的网络服务器经常更新。

我明白了,为了安全起见,我必须转向更新的API,如MySQLi或PDO。现在我很困惑是选择MySQLi还是PDO。此外,是否有适用于此类情况的兼容性/迁移选项?

3 个答案:

答案 0 :(得分:4)

让我们来看看这两个扩展。

<强> PDO

PDO是数据库中立的 - 你只需要学习一个API来处理几十个databases

因此,如果您决定转移到另一个数据库,那么您唯一要改变的就是DSN(数据源名称)。

支持名称和&#39;?&#39;预备陈述的占位符。

Drupal使用PDO。

<强>的mysqli

另一方面,Mysqli是专为Mysql数据库设计的,是Mysql推荐的。 Mysqli适用于Mysql和MariaDB数据库。

仅支持&#39;?&#39;预备陈述的占位符。

Joomla使用Mysqli

<强>结论

天气Mysqli或PDO的运行速度更快,存在许多相互矛盾的争论。 Mysqli和PDO都使用相同的底层驱动程序来访问数据库,这使得性能不值得比较。

因此在使用Mysqli或PDO时没有明显的赢家。但是,让我们说你使用Mysqli,然后你想使用另一个数据库,这将是一个艰难的过渡。

PDO相对于Mysqli的主要优势是预备语句的名称占位符,这也是我选择PDO而不是Mysqli的原因。

答案 1 :(得分:2)

答案很简单。

如果像大多数PHP用户一样,您将在应用程序代码中使用数据库API函数,而没有任何中间包装器,那么<​​strong> PDO是您唯一的选择,因为它是一种包装器已经完成了许多必须手动完成mysqli操作的操作。

不,没有迁移选项,因为这种方法发生了巨大变化:不是在查询中直接放置变量,而是必须在查询中用特殊标记替换它们。没有办法自动化这个过程。

答案 2 :(得分:-2)

PDO和MySQli都用于数据库连接,两者都有自己的优势。仔细看看PDO赢得了战斗,但如果你真的坚持只有一个数据库提供商,那么我个人的最佳选择就是使用MySQLi。

您还将从http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059

中提取一些优点