什么时候应该使用MySQLi而不是MySQL?

时间:2012-01-17 08:10:13

标签: php mysql mysqli

有人可以向我澄清使用MySQLi而不是MySQL的优点和缺点吗?有没有我不应该使用MySQLi的情况?我是否需要以不同方式配置我的服务器才能使用MySQLi?例如,我是否需要升级Apache或PHP以便支持MySQLi?

5 个答案:

答案 0 :(得分:34)

你应该使用MySQLi扩展而不是MySQL扩展的原因很多:

  1. MySQLi为您提供准备好的语句 - 一种更安全的方式将数据发送到MySQL并保护您免受SQL注入。 仅此一项就足以让我们始终选择MySQLi而不是MySQL
  2. MySQLi支持大多数MySQL功能。
  3. MySQLi是面向对象的。
  4. MySQLi支持预处理语句,事务和多个语句。
  5. 旧的MySQL扩展名为deprecated as of PHP 5.5.0
  6. 还有其他好处。但主要是,你应该专注于安全性和稳定性 - 而MySQLi就是为你提供的。

答案 1 :(得分:8)

PHP团队拒绝进一步支持mysql扩展。这个理由已经足够了。

所有其他原因都没有多大意义:

  • MySQLi为您提供准备好的语句 - 可以使用旧的mysql与手动处理的plaeholders 并使其更安全。仅这一点就应该阻止MySQL进行无用的弃用。
  • MySQLi支持大多数PHP用户从未听说过的大多数MySQL功能
  • MySQLi是面向对象的 - 一对直接的手可以在几个小时内完成旧的mysql目标。
  • * MySQLi支持

所以,根本没有任何优势 如果您想要使用未弃用但可用的扩展程序 - 请转到PDO

答案 2 :(得分:4)

如果您使用mysql> 4.1.3。 Mysqli是php中mysql的新界面。来自http://www.php.net/manual/en/mysqli.overview.php

的引用

什么是PHP的MySQL扩展?

这是最初的扩展,旨在允许您开发与MySQL数据库交互的PHP应用程序。 mysql扩展提供了一个过程接口,仅适用于早于4.1.3的MySQL版本。此扩展可以与MySQL 4.1.3或更新版本一起使用,但并非所有最新的MySQL服务器功能都可用。

Note:

If you are using MySQL versions 4.1.3 or later it is strongly recommended that you 
use the mysqli extension instead.

答案 3 :(得分:2)

总是,如果可能的话。

PHP安装可能不支持MySQLi。但是,大多数托管服务提供商都支持MySQLi。

答案 4 :(得分:0)

除非您使用旧版本的MySQL数据库(4.1.3之前)或者需要MySQLi中尚未包含的某些功能(我认为有两个功能中的一个未被移动),所以坚持使用MySQLi什么时候可以。