从这篇文章开始,我们学习MySQLi扩展。可以说MySQL(原始)扩展是我们很多人刚开始学习PHP时连接数据库的入门导师。现在如果想要使用过程式的代码来操作数据库,只能使用mysqli扩展了。
关于 PDO 的学习我们告一段落,从这篇文章开始,我们继续学习另外一个 MySQL 扩展,也就是除了 PDO 之外的最核心的 MySQLi 扩展。可以说它的祖先,也就是 MySQL(原始) 扩展是我们很多人刚开始学习 PHP 时连接数据库的入门导师。不过随着时代的变迁,MySQL(原始) 扩展在 PHP7 中已经被彻底废弃了。现在如果想要使用过程式的代码来操作数据库,只能使用 mysqli 扩展了。当然,mysqli 扩展也是支持面向对象式的写法的。
什么是 MySQLi
MySQLi 扩展允许我们访问 MySQL4.1 及以上版本的数据库所提供的功能。它是专门针对于 MySQL 数据库的,不像 PDO 可以通过不同的 dns 来连接不同的数据库。
与 MySQL 和 PDO 的区别与联系
首先,我们还是回顾一下最早的 MySQL 扩展。
-
只面向过程
-
不支持 存储过程 、 多语句执行 、 预处理语句
-
PHP7 中已经删除了并且完全不支持
然后是 PDO
-
仅支持面向对象方式使用
-
可以连接多种数据库,切换数据库带来的变更少,甚至可能不用修改代码
-
支持 存储过程 、 多语句执行 、 预处理语句
最后就是 MySQLi 。
-
支持面向对象和面向过程两种写法
-
仅支持 MySQL 数据库
-
支持 存储过程 、 多语句执行 、 预处理语句
-
跟随 PHP 及 MySQL 的版本更新,可以更快速地支持