php-cgi显示mysql模块,但会抛出“调用未定义的函数mysql_connect()”错误

我使用–with-mysqli = mysqlnd选项在Mac OS X 10.6上从源代码编译了PHP 5.3.6。 php -m和php-cgi -m的输出显示mysqli和mysqlnd模块。 当我使用普通的php二进制文件运行一个包含mysql_connect(…)的简单testingPHP文件时,它连接正常。 当我用php-cgi使用相同的testingPHP文件时,我得到:

PHP致命错误:调用未定义的函数mysql_connect()在/Users/chris/test2.php在第2行

我已经确认了MySQL的套接字信息在php.ini中是正确的,并确保php-cgi使用-c参数使用该文件。 MySQL使用常规的mysql命令行界面工作正常,显然是正常的PHP工作。 php-cgi中的phpinfo()显示mysqli和mysqlnd库的正确版本。

我需要在这个特定的环境中在CGIconfiguration中运行PHP,所以我真的需要php-cgi来工作。 我不担心Apache2 / nginx / etc在这一点上 – 只是让CGI工作。 任何意见,我失踪了?

你已经编译了支持mysqli扩展(mysqli_ *函数)的PHP …但是错误清楚地表明你正在使用mysql_connect()函数(没有“i”,它属于mysql扩展)。 这些是两个不同的扩展名: mysqli代表“MySQL改进”,并且优先于较旧的和function较less的mysql

你有两个select:

1)更新你的代码来使用mysqli_*函数

2)用mysql扩展支持再次编译你的PHP(不要忘了稍后在php.ini中启用它)

PS无论如何,我会build议使用PDO来满足您的数据库需求(当然,如果可以的话)。

也许你可以试试这个:

在文件php.ini已被取消注释扩展mysql.so? 或尝试转发这个职位

我希望它能解决你的问题。