It just so happened that my friend xjb also encountered this problem today, so I wrote this note to record the description and solution of the problem.
Problem description: Using the web method, you can connect to mysql, but under the command line, it prompts:
Fatal Error: undefined function mysql_connect()
Environment: Windows 2003, PHP 5.2.0, MYSQL 5.0, Apache 2.0
In php. ini, the module option of php_mysql.dll has been turned on; the test script is also very simple, just a mysql_conect function, the content is as follows:
Copy the codeThe code is as follows:
php.ini:
extension =php_mysql.dll
The content of the test script test.php is as follows:
text.php
if ( !mysql_connect(DBHOST, DBUSER,DBPWD) )
{
echo "Connection failed!";
exit;
}
echo "Connection successful!t";
?>
Use web mode to call http://localhost/test.php, it executes normally and displays "Connection successful".
But use dos command line to call d: /php/php.exe test.php shows that the connection failed. The error message is: Fatal Error: undefined function mysql_connect()
Obviously, in the dos command line environment, the mysql module is not called. I tried all the methods, but still couldn't solve it. I was puzzled. Later, I wrote a script to see the php configuration and the difference in the two environments:
test.php
Copy code Code As follows:
echo phpinfo();
?>
Carefully check the php configuration information input by phpinfo() in the two environments, and finally found the problem:
Web method http://localhost When called in /test.php mode, its Configuration File (php.ini) Path is displayed as C:WINDOWSphp.ini.
DOS COMMAND command line mode d:/php/php.exe When test.php is called, its Configuration File (php.ini) Path is d:phpphp.ini.
There is a php.ini file in both the c:windows and d:php directories. The php.ini in the d:php directory does not open the extension=php_mysql.dll module. So I deleted d:phpphp.ini and kept only c:windowsphp.ini, and the problem was solved.
Summary: When installing php under windows, in order to avoid configuration file confusion, after copying the php.ini in the installation directory to the windows directory, the php.ini file in the original installation directory should be renamed or deleted to avoid causing problems. When executing in different environments, inconsistencies in the search configuration files may occur. The cause of the problem is usually very simple, but the process of finding and troubleshooting it is quite annoying.
The above introduces the technical notes on common DOS commands to solve the problem that PHP cannot connect to MySQL under the DOS command line. It includes the content of common DOS commands. I hope it will be helpful to friends who are interested in PHP tutorials.