PHP CLI:即使启用了 mysql 模块,仍会调用未定义的函数 mysql_connect()

PHP CLI:即使启用了 mysql 模块,仍会调用未定义的函数 mysql_connect()

我尝试从命令行运行 PHP 脚本,但出现以下错误:

Call to undefined function mysql_connect()

但是,mysql模块已加载:

root /var/www/scripts # php -m | grep mysql
mysql
mysqli
pdo_mysql

我在 Debian 机器上,因此所有模块都加载到它们自己的 .ini 文件中:

root /var/www/scripts # php --ini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-apc.ini,
/etc/php5/cli/conf.d/20-gd.ini,
/etc/php5/cli/conf.d/20-mcrypt.ini,
/etc/php5/cli/conf.d/20-mysql.ini,
/etc/php5/cli/conf.d/20-mysqli.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
/etc/php5/cli/conf.d/20-xmlrpc.ini

因此,即使mysql模块已加载,在尝试调用mysql_connect()PHP 脚本时仍然会出现上述错误。

有任何想法吗?

PS:通过 Apache 运行脚本效果很好。

答案1

这个问题的解决方案似乎既简单又奇怪(?):

php -c /etc/php5/cli/php.ini -nf script.php

php.ini如果解释器说它无论如何都会加载该 ini 文件,即使没有明确指定它,为什么我必须再次在命令行上指定该文件?

相关内容