mysqli或PDO - 有哪些优点和缺点?[已关闭]

2022-08-30 06:00:00

在我们的位置上,我们分为使用mysqli和PDO来处理预准备语句和事务支持之类的东西。有些项目使用一个,一些项目使用另一个。我们几乎不可能迁移到另一个RDBMS。

我更喜欢PDO,原因只有一个,它允许为预准备语句命名参数,据我所知,mysqli没有。

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


答案 1

好吧,你可以与面向对象的方面,准备好的陈述,它成为标准的事实等争论。但我知道,大多数时候,说服某人使用杀手级功能效果更好。所以它是这样的:

PDO的一个非常好的事情是你可以获取数据,自动将其注入到对象中。如果你不想使用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();
}

答案 2

将应用程序从一个数据库移动到另一个数据库并不常见,但迟早您可能会发现自己使用不同的RDBMS处理另一个项目。如果您在家中使用PDO,那么在这一点上至少会少学一件事。

除此之外,我发现PDO API更直观一些,感觉更真正面向对象。mysqli感觉它只是一个已经被客观化的程序化API,如果你知道我的意思的话。简而言之,我发现PDO更容易使用,但这当然是主观的。


推荐