2014-10-22 77 views
3

我最近开始学习PHP。我开始知道已经发生了很多变化,SQL现在正在被避免,并被MySQLi所取代,但后来我开始了解PDO。我经历了很多关于这两个主题的帖子,但每个人都有自己的看法,我很困惑。许多职位都表示MySQLi支持面向过程和面向对象的方法,而PDO仅支持面向对象的方法。MySQLi和PDO有何区别?

我想知道的是:

  1. 是这两个(PDO和库MySQLi)只有两个做同样的事情不同的方式或者是他们彼此有什么不同?

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

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

对于某些人来说,这似乎是一个广泛的问题,但如果任何人都可以针对这三个问题给出具体的答案,我将非常感激。

+1

[开始](http://dk1.php.net/manual/en/intro.pdo.php)[阅读](HTTP:// dk1.php.net/manual/en/intro.mysqli.php)。 – 2014-10-22 11:05:02

+2

http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059 – 2014-10-22 11:06:13

+0

[MySQL,MySQLi和PDO有什么区别?](http://stackoverflow.com/questions/2190737/what-is-the-difference-between-mysql-mysqli-and-pdo) – Ankur 2016-12-26 12:47:41

回答

1

PDO是用于访问databas ES的接口:

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

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

mysqli扩展允许访问由MySQL 4.1以上提供的功能。 (source

哪一个你应该使用主要是基于舆论,而不是特别适合于堆栈溢出 格式。

1

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

  1. PDO有12个不同的驱动程序支持,而MYSQLI只有一个,即MYSQL。
  2. PDO使用OOP API,而MySqli同时使用OOP和前导
  3. PDO已命名参数,但MuSqli没有。
  4. 随着PDO一个可以具有在客户端准备语句