What is the difference between MySQL, MySQLi and PDO?

Chintan Parekh picture Chintan Parekh · Feb 3, 2010 · Viewed 113.3k times · Source

What is the difference between MySQL, MySQLi and PDO?

Which one is the best suited to use with PHP-MySQL?

Answer

Matthew Flaschen picture Matthew Flaschen · Feb 3, 2010

There are (more than) three popular ways to use MySQL from PHP. This outlines some features/differences PHP: Choosing an API:

  1. (DEPRECATED) The mysql functions are procedural and use manual escaping.
  2. MySQLi is a replacement for the mysql functions, with object-oriented and procedural versions. It has support for prepared statements.
  3. PDO (PHP Data Objects) is a general database abstraction layer with support for MySQL among many other databases. It provides prepared statements, and significant flexibility in how data is returned.

I would recommend using PDO with prepared statements. It is a well-designed API and will let you more easily move to another database (including any that supports ODBC) if necessary.