PHP在DOS命令行下不能连接MySQL
来自Blueidea
PHP在 apache 和 IIS 里运行,网上已经有太多的文章了,但是PHP在DOS窗口下运行,对很多人来说还是个新鲜事,我也只用到过两次,一是 MediaWiki 的升级,都是通过在 DOS 窗口下运行升级脚本,二是 cakephp 框架的脚本生成器console。
好了,在DOS窗口下运行PHP脚本最容易碰到的问题就是不能连接MySQL,提示语句类似这样
Fatal error: Call to undefined function mysql_connect()
通常这种情况就是 mysql 扩展没有打开,但PHP.INI里已经设置了啊。而且WEB一切正常。但仔细一想DOS窗口下和WEB是在不同的两套体系下的,当然会有不一样。那就肯定是PHP.INI没有生效了。
考虑到我是安装的 EasyPHP 套件,所以把 apache 目录下的 PHP.INI 拷贝到 php 目录下。问题解决。
附:一般普通人都是直接安装PHP安装程序,所以PHP.INI都会被默认安装到 c:\windows 目录下,所以这个问题并不普遍,倒是使用这些方便的整合型套件时,PHP.INI都不会在默认的位置,所以在DOS窗口下会连接数据库失败。
另外,有时还需要在环境变量里增加PHP的路径,这样才能方便的在DOS窗口下使用PHP。
附:PHP在DOS下的PHP.INI的载入是先找PHP目录,如果没有再找WINDOWS目录。所以如果设置WINDOWS目录下的PHP.INI不生效,要先检查是不是在PHP目录下也有PHP.INI文件。