mysqli或PDO - 优缺点是什么?[已关闭]

13 浏览
0 Comments

mysqli或PDO - 优缺点是什么?[已关闭]

在我们这里,我们在使用mysqli和PDO之间进行选择,用于像准备语句和事务支持这样的事情。一些项目使用其中一种,一些项目使用另一种。我们几乎没有可能会转移到另一个RDBMS。\n我更喜欢PDO,仅仅因为它允许使用命名参数来准备语句,据我所知mysqli不支持。\n在我们将我们的项目整合为一个方法时,选择其中一种的利弊还有其他方面吗?

0
0 Comments

在选择使用mysqli还是PDO时,这个问题的出现主要原因是两者在语句支持方面的差异。使用PDO的原因是它在我看来在语句支持方面更好。我正在使用类似ActiveRecord的数据访问层,使用动态生成的语句更容易实现。而mysqli的参数绑定必须在单个函数/方法调用中完成,所以如果直到运行时才知道要绑定多少个参数,你就必须使用call_user_func_array()(我相信这是正确的函数名)来进行选择。而且简单的动态结果绑定也是不可能的。

最重要的是,我喜欢PDO,因为它提供了一个非常合理的抽象层次。它可以很容易地在完全抽象的系统中使用,你不需要编写SQL语句,但它也可以很容易地使用更优化的纯查询类型系统,或者混合使用两者。

使用动态生成的查询进行结果绑定是可能的,我们在我们的应用程序中就这样做。然而,这是一件非常痛苦的事情。

0
0 Comments

我认为使用PDO的优势是它更符合面向对象的编程风格,API更加直观易懂。而mysqli则更像是将过程化的API封装成面向对象的形式。所以,从易用性的角度来看,我个人更喜欢使用PDO。

当然,这个问题的答案是主观的,因为每个开发者都有自己的偏好和习惯。有些开发者可能更喜欢mysqli的风格,因为他们觉得更熟悉和舒适。

无论是使用mysqli还是PDO,最重要的是根据项目需求和个人喜好来选择。如果你在一个项目中已经使用了mysqli,并且对其非常熟悉,那么没有必要为了换一个数据库而学习和使用PDO。但是如果你对面向对象编程更感兴趣,或者你需要在未来的项目中使用不同的RDBMS,那么学习和使用PDO可能是一个不错的选择。

在实际使用中,如果要从mysqli迁移到PDO,需要进行一些代码的调整和修改。首先,mysqli和PDO的API是不同的,所以你需要修改所有与数据库交互的代码。此外,由于mysqli和PDO使用不同的连接方式,你还需要修改连接数据库的代码。最后,你还需要修改所有的查询语句,因为mysqli和PDO使用不同的查询语法。

下面是一个简单的示例,展示了如何从mysqli迁移到PDO:

// mysqli
$mysqli = new mysqli("localhost", "username", "password", "database");
$result = $mysqli->query("SELECT * FROM table");
$data = $result->fetch_assoc();
$mysqli->close();
// PDO
$pdo = new PDO("mysql:host=localhost;dbname=database", "username", "password");
$query = $pdo->query("SELECT * FROM table");
$data = $query->fetch();
$pdo = null;

需要注意的是,这只是一个简单的示例,实际迁移的过程可能会更加复杂。在迁移之前,建议先详细了解mysqli和PDO的不同之处,并仔细计划和测试你的迁移过程,以确保迁移的顺利进行。

0
0 Comments

mysqli和PDO之间的优缺点是什么?

mysqli和PDO是PHP中用于连接和操作数据库的两种不同的扩展。它们各自有自己的优点和缺点。

mysqli的优点:

- 简单易用,特别适合小型项目

- 支持面向过程和面向对象的编程风格

- 提供更多的数据库操作方法和功能

- 性能相对较好

mysqli的缺点:

- 不支持多种数据库类型,只能用于MySQL数据库

- API不是很一致,有些方法的命名方式不够统一

- 代码可能更加冗长和复杂

PDO的优点:

- 支持多种数据库类型,包括MySQL、SQLite、PostgreSQL等

- 提供统一的API,命名方式一致

- 支持预处理语句,可以有效防止SQL注入攻击

- 支持对象映射,方便处理数据库查询结果

PDO的缺点:

- 学习曲线较陡峭,相对复杂一些

- 性能相对较低,比mysqli慢一些

- 不支持一些mysqli特有的功能,比如多语句查询

选择mysqli还是PDO取决于具体的项目需求。如果项目规模较小,对性能要求不高,而且只需要连接MySQL数据库,那么mysqli可能是更好的选择。如果项目需要支持多种数据库类型,对性能要求不是很高,而且需要更多的特性和功能,那么PDO可能更适合。

0