我应该什么时候使用MySQLi而不是MySQL?
有人能为我澄清一下使用MySQLi代替MySQL的优缺点吗? 有没有我不应该使用MySQLi的情况? 我需要以不同的方式configuration我的服务器才能使用MySQLi吗? 例如,我是否需要升级Apache或PHP,以便我可以支持MySQLi?
您应该使用MySQLi扩展而不是MySQL扩展的原因很多:
- MySQLi为您提供了准备好的语句 – 将数据发送到MySQL并保护您免受SQL注入的安全方式。 仅此一项就足以在MySQL上selectMySQLi 。
- MySQLi支持大部分MySQLfunction。
- MySQLi是面向对象的。
- MySQLi支持准备好的语句,事务和多个语句。
- 旧的MySQL扩展从PHP 5.5.0开始已弃用
还有其他好处。 但主要是,你应该把重点放在安全性和稳定性上 – 而MySQLi只是给你提供这个。
PHP团队拒绝进一步支持MySQL扩展。 这个理由是足够的。
所有其他原因没有多大意义:
- MySQLi为您提供了准备好的语句 – 可以使用旧的MySQL与手动处理的plaeholders, 并获得更安全的 。 这本身应该阻止MySQL无用的弃用。
- MySQLi支持大多数 PHP用户从未听说过的大部分MySQLfunction 。
- MySQLi是面向对象的 – 一双直接的手可以在几个小时内使旧的mysql对象面向对象。
- * MySQLi支持
- 事务* – mysql也支持它们。 只需运行
START TRANSACTION
查询即可设置。 - 多个报表 – 但没有人真正需要它们。
- 准备好的陈述 – 事实上, 支持是可怕的 ,使他们可以无法使用
- 事务* – mysql也支持它们。 只需运行
所以,没有任何优势。
如果你想与不被弃用的,但可用的扩展相处 – 去PDO 。
如果你正在使用mysql
> 4.1.3。 Mysqli是一个新的php接口。 来自http://www.php.net/manual/en/mysqli.overview.php的引用;
什么是PHP的MySQL扩展?
这是原来的扩展,旨在让您开发与MySQL数据库交互的PHP应用程序。 mysql扩展提供了一个过程接口,仅用于4.1.3以前的MySQL版本。 该扩展可以与MySQL 4.1.3或更新版本一起使用,但不是所有最新的MySQL服务器function都可用。
Note: If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use the mysqli extension instead.
总是,如果可能的话。
有可能你的PHP安装不支持MySQLi。 但是,大多数主机提供商都支持MySQLi。
除非你使用旧版本的MySQL数据库(在4.1.3之前),或者需要MySQLi中尚未包含的某些function(我认为有两个函数中没有一个是移过来的),那么只要你使用MySQLi能够。