【问题标题】:PDO verus MySQLi [duplicate]PDO 与 MySQLi [重复]
【发布时间】:2016-06-08 15:05:25
【问题描述】:

我是 PHP、SQL、数据库等方面的初学者,我想听听人们对在使用数据库时使用 PDO 还是 MySQLi 的意见,到目前为止,我看到的意见很复杂。

您会认为使用 MySQLi 的人是专业的 Web 开发人员吗? MySQLi 是否符合行业标准,还是经常被雇主和客户忽视?

我相信这个问题之前已经被问过很多次了,但如果你没有将此问题标记为重复,我将不胜感激,因为我希望获得新的意见,并且尽可能多我可能会。

提前致谢:]

【问题讨论】:

  • 使用PDO。它更简单,面向对象且更新。如果没有的话,好处是它对于不同的数据库供应商是相同的接口(当然,实际的查询语言不同,但它周围的 PHP 是相同的)。
  • @Orions 就像我说的,我希望就此事获得新的意见。我在论坛上阅读了很多文章和帖子,但是我想从参与 Web 开发的人那里获得更多答案/意见。
  • 基于意见的问题在这里也不是主题。但是,在我看来PDO 更好,因为如果将来您将数据库从一种类型迁移到另一种类型,您就不必重写每个查询。
  • 就个人而言,在学习 PDO 之前,我是从 MySQLi 开始的。 就个人而言我发现 PDO 更简单、更易于使用,但如果您的数据库支持它,使用 MySQLi 并没有什么问题,它非常支持它。要记住的重要一点是,无论 API 是什么,您都使用带有占位符的准备好的语句。安全方面,MySQLi 与 PDO 一样好。您也可以在php.net/manual/en/mysqlinfo.api.choosing.php 阅读——我建议您尝试both,看看您最喜欢哪一个。很多人推荐 PDO,但两者都试试!
  • @Leon 这里是您正在寻找的新鲜而详细的解释:phpdelusions.net/pdo/mysqli_comparison

标签: php mysql database mysqli pdo


【解决方案1】:

我认为PDO要好得多,它支持的数据库比mysqli多得多。
但是您可能不会使用其他的。所以在你的位置上,这不是专业人士。
在做 PDO 准备好的语句时,您可以使用命名标签,如下所示:

$stmt = $pdo->prepare("SELECT * FROM users WHERE user_name = :name");
$stmt->execute(array(':name' => $name))

在 mysqli 中,你没有标签作为 (:name) 你有 (?),你必须按顺序绑定参数,而不是标签名称,我认为这很糟糕。

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 2020-02-19
    • 2019-10-09
    • 2020-01-29
    • 1970-01-01
    • 2012-08-04
    • 2016-05-23
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多