MySQLi和PDO有什么区别?

时间:2014-10-22 11:02:02

标签: php mysql pdo mysqli

我最近开始学习PHP。我开始知道有很多变化,SQL现在正在被避免,并且已被MySQLi取代,但随后我开始了解PDO。我已经浏览了很多关于这两个主题的帖子,但每个人都有自己的看法,我很困惑。许多帖子都说MySQLi支持面向过程和面向对象的方法,而PDO只支持面向对象的方法。

我想知道的是:

  1. 这两个(PDO和MySQLi)只是两种不同的方式做同样的事情,还是彼此不同?

  2. 如果它们只是两种不同的方式来做同样的事情那么它们之间有什么区别,哪一种更好的方式来执行任务?

  3. 如果学习MySQLi,哪一个是面向对象和程序之间更好的方法?

  4. 对某些人来说,这似乎是一个广泛的问题,但如果有人能对这三个问题给出具体答案,我将非常感激。

2 个答案:

答案 0 :(得分:1)

PDO是用于访问数据库 es 的接口:

  

PHP数据对象(PDO)扩展定义了一个轻量级,一致的接口,用于访问PHP中的数据库。实现PDO接口的每个数据库驱动程序都可以将特定于数据库的功能公开为常规扩展功能。请注意,您无法单独使用PDO扩展来执行任何数据库功能;您必须使用特定于数据库的PDO驱动程序来访问数据库服务器。 (source

MySQLi是访问MySQL数据库的扩展:

  

mysqli扩展允许您访问MySQL 4.1及更高版本提供的功能。 (source

您应该使用哪一种主要是基于意见的,并不是特别适合Stack Overflow格式。

答案 1 :(得分:1)

在PHP中访问数据库时,我们有两个选择:MySQLi和PDO。那么在选择之前你应该知道什么?

  1. PDO有12种不同的驱动程序支持,而MYSQLI只有一种,即MYSQL。
  2. PDO使用OOP API而MySqli同时使用OOP和先行
  3. PDO已命名参数,但MuSqli没有。
  4. 使用PDO,可以在客户端编写语句