为什么mysqli_connect()是"未定义的函数"在我的PHP服务器上?

时间:2015-06-30 21:20:24

标签: php mysql mysqli

我在Linux服务器上使用PHP 5.3.3版。当我尝试使用mysql_connect()或mysqli_connect()来访问数据库时,我收到一条错误消息:

致命错误:调用未定义的函数mysql_connect()

致命错误:调用未定义的函数mysqli_connect()

您可以在此处查看我的测试页:http://gorp.osg.ufl.edu/BOT3151/testing.php

您可以在此处查看phpinfo页面:http://gorp.osg.ufl.edu/phptest.php

相关的configure命令在这里:

'--with-mysql=shared,/usr' '--with-mysqli=shared,/usr/lib64/mysql/mysql_config' '--with-pdo-mysql=shared,/usr/lib64/mysql/mysql_config'

它还说正在解析这些.ini文件:

/etc/php.d/mysql.ini /etc/php.d/mysqli.ini

php.ini文件还包括以下行:

extension=mysql.so extension=mysqli.so

那么这里出了什么问题? mySQL是否未在服务器上正确安装?我该如何解决这个问题?

ADDENDUM:我应该已经解释过,这是在我不管理的共享服务器上。我只能通过SFTP访问服务器上的文件夹。但我有一个php.ini文件,我有一个扩展文件夹。这是我可以自行解决的问题,还是需要服务器管理员的帮助?

4 个答案:

答案 0 :(得分:2)

尝试通过以下方式安装PHP MySQL:

apt-get install php5-mysql

然后可以使用PHP和Apache设置轻松设置MySQL。如果您的MySQL已经安装,您可以先卸载它,然后尝试通过上面的代码在终端中安装PHP MySQL。

这是最简单的方法,无需任何设置。

答案 1 :(得分:2)

未加载“mysqli”扩展名。您无法在phpinfo()文件中看到该部分。

http://gorp.osg.ufl.edu/phptest.php

您应该在该页面上看到类似的内容: https://drive.google.com/open?id=0B7VdYIkRLxQWaDRLYVNLeU84am8

仅仅因为您已取消注释行extension=mysqli.so并不意味着它会加载。文件mysqli.so可能不在PHP正在查找或根本不存在的文件夹中。

检查php.ini文件中的“extension_dir”。然后去查看文件mysqli.so是否真的存在。

您重启了网络服务器吗?

答案 2 :(得分:0)

鉴于您的PHP信息页面未列出显示MySQL配置的部分,因此可能无法在您的服务器上安装MySQL。

答案 3 :(得分:0)

我遇到了类似的问题。 php.ini文件中的默认值存在一些问题。如果您的问题没有通过上面给出的答案解决,请查看this答案。