我已经设计了一个网站在5年前使用PHP MySQL,仍然工作良好,没有任何问题。我听说MySQL在PHP5.5中被正式废除,并在PHP7中被删除。另外,PHP提供了三种不同的API来连接到MySQL (比如MySQL、MySQLi和PDO)。我的web服务器经常更新。
我明白,为了安全起见,我必须使用新的API,如MySQLi或PDO。现在我很困惑是选择MySQLi还是PDO。此外,是否有任何兼容性/迁移选项可用于这种情况?
发布于 2016-02-25 08:04:41
答案相当简单。
如果像大多数PHP用户一样,您将在应用程序代码中直接使用数据库API函数,而不使用任何中间包装器,那么PDO是您唯一的选择,因为它已经是一种包装器,可以自动执行许多使用mysqli必须手动完成的操作。
不,没有迁移选项,因为方法本身发生了很大的变化:不是将变量放在查询中,而是必须在查询中使用特殊标记替换变量。没有办法使这个过程自动化。
发布于 2016-02-25 08:58:46
让我们看看这两个扩展。
PDO
PDO是与数据库无关的-您只需要学习一个API就可以使用数十个数据库。
因此,如果您决定移到另一个数据库,那么唯一需要更改的就是DSN(数据源名称)。
同时支持姓名和“?”准备语句的占位符。
Drupal使用PDO。
Mysqli
另一方面,Mysqli是专门为Mysql数据库设计的,并且是Mysql推荐的。Mysqli使用Mysql和MariaDB数据库。
只支持“?”准备语句的占位符。
Joomla使用Mysqli
结论
对于Mysqli或PDO是否运行得更快,有许多相互矛盾的争论。Mysqli和PDO都使用相同的底层驱动程序访问数据库,因此性能不值得比较。
因此,在使用Mysqli或PDO时,没有明确的赢家。但是假设您使用Mysqli,然后您想要使用另一个数据库,这将是一个很困难的转换。
PDO相对于Mysqli的主要优点是准备语句的名称占位符,这就是为什么我选择PDO而不是Mysqli。
发布于 2016-02-25 08:11:47
PDO和MySQli都用于数据库连接,两者都有各自的优点。仔细看,PDO赢得了这场战斗,但是如果你真的只使用一个数据库提供商,那么我个人的最佳选择就是使用MySQLi。
您还将从以下http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059中提取一些优点
https://stackoverflow.com/questions/35621448
复制相似问题