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

yipeiwu_com5年前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中mysql模块部分功能的简单封装

复制代码 代码如下: class mysql { private $db; // datebase connect private $result; // mysql result st...

php+Mysqli利用事务处理转账问题实例

本文实例讲述了php+Mysqli利用事务处理转账问题的方法。分享给大家供大家参考。具体实现方法如下: <?php header("Content-type:te...

php基于PDO实现功能强大的MYSQL封装类实例

本文实例讲述了php基于PDO实现功能强大的MYSQL封装类。分享给大家供大家参考,具体如下: class CPdo{ protected $_dsn = "mysql:host=...

PHP与MySQL开发的8个技巧小结

1. PHP 中数组的使用 在操作数据库时,使用关联数组(associatively-indexed arrays)十分有帮助,下面我们看一个基本的数字格式的数组遍历: 复制代码 代码如...

MySql数据库查询结果用表格输出PHP代码示例

在一般的网站中,我们会通常看到,很多数据库中表的数据在浏览器都是出现在表格中的,一开始让自己感到很神奇,但是仔细想想也不算太复杂,既然可以dql和dml的一般返回,以表格的方式返回应该也...