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文件。