我使用--with=mysqlnd选项从MacOSX10.6上编译了PHP 5.3.6。php -m和php -m的输出显示mysqli和mysqlnd模块。当我运行一个包含mysql_connect(.)的简单测试PHP文件时使用常规的php二进制文件,它可以很好地连接。当我在php-cgi中使用相同的测试PHP文件时,我得到:
PHP致命错误:在第2行调用/Users/chris/test2.php中未定义的函数mysql_connect()
我已经确认了MySQL套接字信息在php.ini中是正确的,并确保了php.ini正在使用-c参数使用该文件。使用常规的MySQL命令行界面,mysql工作得很好,而且显然是在使用常规的PHP。php-cgi中的phpinfo()显示了mysqli & mysqlnd库的正确版本。
在这个特定的环境中,我需要在CGI配置中运行PHP,所以我真的需要php才能工作。此时,我并不担心Apache2 2/nginx/etc--只是让CGI开始工作。关于我错过了什么有什么建议吗?
发布于 2011-06-19 09:15:46
您已经编译了支持mysqli扩展(mysqli_*函数)的PHP .但是,错误清楚地表明,您使用的是mysql_connect()函数(没有"i",它属于mysql扩展)。这是两个不同的扩展:mysqli是"MySQL改进“的意思,它更倾向于使用较旧的、功能较少的mysql。
你有两个选择:
1)更新代码以使用mysqli_*函数
2)使用mysql扩展支持再次编译PHP (不要忘记稍后在php.ini中启用它)
无论如何,我建议使用PDO来满足您的数据库需求(当然,如果可以的话)。
发布于 2011-06-19 03:21:50
https://serverfault.com/questions/281869
复制相似问题