php - mysqli 或 PDO - 优缺点是什么?

标签 php mysql pdo mysqli database-abstraction

在我们这里,我们分为使用 mysqli 和 PDO 来处理准备好的语句和事务支持等内容。有些项目使用其中一种,有些则使用另一种。我们迁移到另一个 RDBMS 的现实可能性很小。

我更喜欢 PDO,因为它允许为准备好的语句命名参数,而据我所知 mysqli 不允许。

当我们整合项目以仅使用一种方法时,选择一种方法作为标准是否还有其他优点和缺点?

最佳答案

嗯,你可以争论面向对象方面、准备好的语句、它成为标准的事实等等。但我知道大多数时候,说服某人使用 killer 级功能会更好。所以就是这样:

PDO 的一个非常好的事情是您可以获取数据,并将其自动注入(inject)到对象中。如果您不想使用 ORM (因为它只是一个快速脚本)但是您确实喜欢对象映射,它真的很酷:

class Student {

    public $id;
    public $first_name;
    public $last_name

    public function getFullName() {
        return $this->first_name.' '.$this->last_name
    }
}

try 
{
    $dbh = new PDO("mysql:host=$hostname;dbname=school", $username, $password)

    $stmt = $dbh->query("SELECT * FROM students");

    /* MAGIC HAPPENS HERE */

    $stmt->setFetchMode(PDO::FETCH_INTO, new Student);


    foreach($stmt as $student)
    {
        echo $student->getFullName().'<br />';
    } 

    $dbh = null;
}
catch(PDOException $e)
{
    echo $e->getMessage();
}

关于php - mysqli 或 PDO - 优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46786077/

相关文章:

php - 使用 PHP 在每个月的 HTML 表中显示日期

php - PHP中的接口(interface)有什么意义?

php - 使用 PDO 时为 "Notice: Undefined variable: db"

mysql - VB.NET DataGridView -> 添加列并使用另一个单元格中的数据填充单元格

php - 使用 PHP 选择并显示 MySQL 表中的所有字段以获得无限数量的列

java - 为什么连接 MySQL 时 Java 很慢?

mysql 程序无法在表中搜索 2 列值?

php - 左连接同一字段选择所有行

php - Mysql 选择不同的列和所有列

php - 使用where子句计算sql数据的行数