我使用PHP MySQL在5年前设计了一个网站,但仍然没有任何问题。我听说MySQL从PHP 5.5开始正式被弃用,并且从PHP 7开始被删除。此外,PHP提供了三种不同的API来连接MySQL(如MySQL,MySQLi和PDO)。我的网络服务器经常更新。
我明白了,为了安全起见,我必须转向更新的API,如MySQLi或PDO。现在我很困惑是选择MySQLi还是PDO。此外,是否有适用于此类情况的兼容性/迁移选项?
答案 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
中提取一些优点