学习MySQLi或PDO最好的是什么?

时间:2015-12-25 09:49:14

标签: php mysql mysqli pdo

我刚开始接触旧的已弃用MySQLi中的MySQL,最近我被告知我应该PDO了解MySQLi ecs-init。我不知道该怎么办!有人帮助我!

经过很长一段时间在线搜索答案后,我很乐意看到并了解什么是最好的。

2 个答案:

答案 0 :(得分:5)

可能重复!但继续我的快速反应。

从最近的PHP更新7.0开始,旧的MySQL函数已从PHP中删除。这意味着大多数人需要迁移到最新的两个功能:MySQLiPDO。我会对这两个功能给出分数,最后也会给出我个人的想法。

库MySQLi

MySQLi本质上是对PHP现已弃用的mysql_*函数的改进;但是,这个新函数现在支持预处理语句。

PDO

PHP Data Objects,也称为PDO,是一个通用的数据库抽象层,支持MySQL以及许多其他数据库。它也支持预备语句。

What are prepared statements?

使用Prepared Statements被认为是一种很好的编程习惯,因为它们对SQL注入/攻击非常有弹性。这些SQL注入漏洞的发生是由于用户输入直接成为SQL查询的一部分而未对其进行适当的清理。

就我个人而言,我个人使用PDO。但是上述两种功能中的任何一种都是首选,因为它们支持准备好的陈述。

答案 1 :(得分:2)

我会建议PDO。最大的原因是, PDO支持多个数据库。但是,如果你现在只学习mysql,为什么要考虑多个数据库呢?这可能是原因:

  1. 您现在可能想学习mysql,但稍后您也可能对其他数据库感兴趣。例如,您决定将oracle db用于未来的项目或任何客户端项目。然后你需要学习使用oracle特定函数,如oci_connect()oci_execute()等。但是如果你先学习PDO,你就不需要学习任何新的PHP函数来实现它。 / p>

  2. 在某些情况下,您可能需要更改数据库以获得更好的性能/安全性或项目可能需要的任何其他目的。如果你在PDO中,你只需要更新几行SQL,这两行可能会有所不同(这并不是很多)。但是如果你有mysqli_*函数,则需要更新用于数据库目的的每个PHP函数。

  3. 所以,我建议你学习mysqli,如果你确定在将来的生活中你不打算使用除mysql之外的任何其他数据库。