从PHP 5.0开始,不仅可以使用早期的MysqL数据库扩展函数,而且还可以使用新的扩展MysqLi技术实现与MysqL数据库的信息交流。PHP的 MysqLi扩展被封装到一个类中,它是一种面向对象的技术,只能在PHP 5和MysqL 4.1(或更高的版本)环境中使用,(i)表示改进,其执行速度更快。使用MysqLi扩展和传统的过程化方法相比更方便也更高效。
利用MysqLi扩展 技术不仅可以调用MysqL的存储过程、处理MysqL事务,而且还可以使访问数据库工作变得更加稳定。
注:可以简单理解MysqLi是MysqL_*系列函数的一个加强版.
喜欢过程化编程的用户也不用担心,MysqLi也有过程式的方式,提供了一个传统的函数式接口,只不过开始贯以MysqLi的前缀,其他都差不多。 如果MysqLi以过程式的方式操作的话,有些函数必须指定资源,比如说 MysqLi_query(资源标识,sql语句)。并且资源标识的参数是放在前面的,而MysqL_query(sql语句,'可选')的资源标识是放 在后面的,并且可以不指定,它默认是上一个打开的连接或资源。本书将重点介绍他的面向对象的用法,如果更喜欢以过程化方式编写程序,使用前面介绍的 MysqL功能扩展模块就可以了。这里,希望读者使用面向对象的方式编程,这样可以编写出更容易阅读和理解的代码。
13.1 启用MysqLi扩展模块
与MysqL功能扩展模块类似,MysqLi接口也不是PHP的一个集成组件,如果想使用这个功能扩展模块,需要显示配置PHP才能使用此扩展。在 不同平台下的配置有所不同,如果在Linux平台中启用MysqLi扩展,必须在编译PHP时加上--with-MysqLi选项。如果在Windows 平台中启用MysqLi扩展,需要通过一个DLL文件提供相应的扩展。不管使用的是哪一个操作系统平台,都必须在PHP.ini文件里启用这个扩展,以确 保PHP能够找到所有必要的DLL。可以在PHP.ini文件中找到下面一行,取消前面的注释,如果没有找到就添加这样一行:
extension=PHP_MysqLi.dll //在PHP.ini文件中启用这一行
关于配置PHP的更多信息,请参见本书第2章的环境安装。另外,可以在PHP脚本文件中,调用PHPinfo()函数检查PHP版本是否支持MysqLi接口。如果找到如图13-1所示的结果,则所用的PHP版本中支持MysqLi接口。使用PHPinfo()函数检查MysqLi扩展模块的支持, MysqLi 扩展不仅提供了MysqL模块的所有功能,也相应地增加了一些新特性。MysqLi扩展模块包括MysqLi、MysqLi_result和 MysqLi_stmt三个类,通过这三个类的搭配使用,就可以连接MysqL数据库服务器和选择数据库、查询和获取数据,以及使用预处理语句简化了重复 执行的查询语句。