I am running a php page form the command line to update a mysql db once a php exec command has completed. This has been working OK.
However, I have just reinstalled my server and now the script is returning the following error when I run it on the command line:
Fatal error: Call to undefined function mysql_connect()
The script runs fine in the browser which means mysql is installed OK. How do I enable mysql in PHP to be run from the command line?
Many thanks.
I had a similar problem a short time ago (maybe it's the same problem for you):
I had specified my prefered php.ini in Apache's config. However, this obviously doesn't affect php in CLI. Check which
php.ini
is used by php:php --ini
. Either modify it or choose a different config file by changing some of these:I've just modified the PHPRC environment variable to my prefered location of
php.ini
.Check the path to your PHP executable. You didn't mention which OS this is under, but, for example, under OSX just running
php
executes the built-in PHP interpreter. If you're using MAMP you'll need to run/Applications/MAMP/bin/php5.2/bin/php
(or whatever your path is) to imitate what's running in your browser.Alter the path to your web server's php accordingly (based on AMP installation, OS, etc.).
For me the answer was to change the first line in my script from '#!/usr/bin/php' to '#!/usr/bin/php -c /etc/php.ini'.
Even though 'php --ini' indicated it was processing the correct .ini file, it wasn't, so I had to force it on the header line of the script.
First of all, you can use
from the command-line, to check which extensions are enabled.
If mysql is not in the list, it means it's not enabled / loaded -- which is probably the case, here.
Then, you'll want to use
to check which
.ini
file(s) is/are read by PHP.Once you've found out which
php.ini
file is used, you'll have to edit it, and add something like this :To load the
mysql
extension.Depending on your distribution, the might be a
.ini
file per extension (Ubuntu does that, for instance).If that's the case, you could also create a new
.ini
file (mysql.ini
for instance) next to the other ones, and put the two lines I posted into that new file.