【问题标题】:What's best to learn MySQLi or PDO? [closed]什么是最好的学习 MySQLi 或 PDO? [关闭]
【发布时间】:2015-12-25 09:49:13
【问题描述】:

我刚刚开始从旧的已弃用的MySQL 接触MySQLi,最近有人告诉我,我应该学习PDO 而不是MySQLi。我不知道该怎么办!谁来帮帮我!

在网上搜索了很长时间的答案后,我很想看看并了解什么是最好的。

【问题讨论】:

    标签: php mysql mysqli pdo


    【解决方案1】:

    可能重复!但这是我的快速回复。

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

    MySQLi

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

    PDO

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

    What are prepared statements?

    使用准备好的语句被认为是良好的编程实践,因为它们对 SQL 注入/攻击具有很强的弹性。这些 SQL 注入漏洞的发生是由于用户输入直接成为 SQL 查询的一部分,而没有对其进行适当的清理。

    就我个人而言,我使用 PDO 是因为它的性质。但是上述两个函数中的任何一个都是首选的,因为它们支持准备好的语句。

    【讨论】:

    • 我认为使用 PDO 的可能性不大,据我所知,它效果最好!谢谢
    • 是的,我认为这是要走的路!最好尽早学习,然后必须开始学习多个不同的 MySQL 函数。
    • 答案对OP的问题没有直接或间接的答案。它只解释了什么是 MySQLi 和 PDO。 (OP 在问哪个更好)。
    • @TareqMahmood 你是对的;但是,我给出了为什么它们都是首选方法的原因,因为涉及不同功能的问题本质上是个人偏好。我将尝试编辑我的答案,以更倾向于 PDO 途径,因为它是我使用的。谢谢。
    【解决方案2】:

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

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

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

    所以,我只建议你学习mysqli,如果你确定你以后不会使用除mysql之外的任何其他数据库。

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2013-02-26
      • 2023-03-04
      • 2019-06-07
      • 1970-01-01
      • 2011-03-11
      • 2010-10-10
      • 1970-01-01
      • 2014-11-11
      相关资源
      最近更新 更多