2

I try to run a PHP script from the command line, but get the following error:

Call to undefined function mysql_connect()

However, the mysql module is loaded:

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

I am on a Debian machine, so all modules are being loaded in their own .ini file:

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

So even though the mysql module has been loaded, I still get said error when trying to call mysql_connect() in the PHP script.

Any ideas?

PS: Running the script via Apache works fine.

2
  • Did you have a look to your php error log file to look for additional information?
    – jap1968
    Jun 1, 2013 at 15:38
  • No information in error log, since I run the script from command line.
    – Matthias
    Jun 2, 2013 at 1:38

1 Answer 1

0

A solution to this problem seems to be both easy and strange (?) alike:

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

Why do I have to specify the php.ini file on command line again, if the interpreter says it loads that ini file anyway, even when one does not specify it explicitly?

1
  • You probably have two different versions of PHP installed on your system. Jun 3, 2013 at 0:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .