首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php显示mysql模块,但抛出“调用未定义函数mysql_connect()”错误。

问php显示mysql模块,但抛出“调用未定义函数mysql_connect()”错误。
EN

Server Fault用户
提问于 2011-06-19 02:35:57
回答 2查看 2.3K关注 0票数 1

我使用--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开始工作。关于我错过了什么有什么建议吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2011-06-19 09:15:46

您已经编译了支持mysqli扩展(mysqli_*函数)的PHP .但是,错误清楚地表明,您使用的是mysql_connect()函数(没有"i",它属于mysql扩展)。这是两个不同的扩展:mysqli是"MySQL改进“的意思,它更倾向于使用较旧的、功能较少的mysql。

你有两个选择:

1)更新代码以使用mysqli_*函数

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

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

票数 1
EN

Server Fault用户

发布于 2011-06-19 03:21:50

也许你可以试试这个:

在文件php.ini中是否有未注释的扩展名mysql.so?或者尝试欺骗这个帖子

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

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/281869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档