关于在php.ini中添加extension=php_mysqli.dll指令的说明

yipeiwu_com7年前Mysql基础
在配置php5时要使用mysql作为数据库,很多人都认为只要在php.ini中添加extension=php_mysql.dll;指令即可,不清楚为什么很多文章都推荐还要添加extension=php_mysqli.dll;指令。

只要查看官方最新php手册便知,上面写到:

下面是内置的扩展库列表:

 PHP 5 中(截止到 5.0.4)有以下修改。新增内置:DOM,LibXML,Iconv,SimpleXML,SPL 和SQLite。以下不再内置:MySQL 和 Overload。

原来php5没有内置这些扩展库(当然也可以得出在使用php4时,不需要添加这些指令),至于为什么php5没有不再绑定mysql的客户端库,手册中也有说明:

部分原因是(无特定顺序): 

。现今大多数系统已经安装了客户端库了。 

。由于以上原因,保持多个版本的库文件会导致混乱。例如,如果把 mod_auth_mysql 连接到某个版本,但把 PHP 连接到了另一个版本,然后在 Apache 中同时激活了它们,会得到无数错误。此外,绑定的库文件也不总是能和服务器端的版本很好地配合。对此最明显的症状是上哪里去找 UNIX 域套接字文件 mysql.socket。 

。维护有些松懈,并且已经越来越落后于发行的版本了。 

。未来的库版本是基于 GPL 的,因此我们没有升级的途径了,因为我们不能将基于 GPL 的库和 BSD/Apache 风格许可证的项目绑定到一起。因此具有一个干净的 PHP 5 是最好的选择。

配置时为php激活两个扩展库的原因是因为:

  。为了能使用基本函数操作访问mysql数据库服务器,必须在配置php时添加mysql的支持,即使用php_mysql.dll扩展库。

  。虽然php_mysql.dll扩展库兼容mysql 4.1.0机器以后版本,但是它不支持这些版本提供的额外功能,要使用这些功能,还需要使用php_mysqli.dll扩展库。

  PHP 4 中(截止到 PHP 4.3.11):BCMath,Caledar,COM,Ctype,FTP,MySQL,ODBC,Overload,PCRE,Session,Tokenizer,WDDX,XML 和 Zlib。

相关文章

编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法

今天在64位Red Hat Enterprise Linux AS release 4 .7上编译PHP5.2.6出错,mysql是使用的RPM方式安装的,PHP编译代码如下: ....

php中转义mysql语句的实现代码

你总不可能对每一个这样的特殊字符都人工进行转义,何况你通常处理的都是表单自动提交的内容。 所以,应该使用mysql_real_escape_string函数: mysql_real_es...

PHP+Mysql实现多关键字与多字段生成SQL语句的函数

本文实例讲述了PHP+Mysql实现多关键字与多字段生成SQL语句的函数的方法。分享给大家供大家参考。具体实现方法如下: 先看实例: 复制代码 代码如下:$keyword="1 2 3"...

PHP商品秒杀问题解决方案实例详解【mysql与redis】

本文实例讲述了PHP商品秒杀问题解决方案。分享给大家供大家参考,具体如下: 引言 假设num是存储在数据库中的字段,保存了被秒杀产品的剩余数量。 if($num > 0){...

PHP配置心得包含MYSQL5乱码解决

经过最近一段时间狂热的PHP编程,对WINDOWS平台下PHP的配置可算是深有感触,一开始我用的是一键安装的傻瓜包,但是考虑傻瓜包的安装版本已经落后,在真正手动配置PHP环境时遇到许多问...