Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么mysqli_connect()是一个;“未定义函数”;在我的PHP服务器上?_Php_Mysql_Mysqli - Fatal编程技术网

为什么mysqli_connect()是一个;“未定义函数”;在我的PHP服务器上?

为什么mysqli_connect()是一个;“未定义函数”;在我的PHP服务器上?,php,mysql,mysqli,Php,Mysql,Mysqli,我正在Linux服务器上使用PHP版本5.3.3。当我尝试使用mysql_connect()或mysqli_connect()访问数据库时,会出现一个错误,错误是: 致命错误:调用未定义的函数mysql\u connect() 或 致命错误:调用未定义的函数mysqli\u connect() 您可以在此处查看我的测试页面: 您可以在此处看到phpinfo页面: 相关的配置命令如下所示: '--使用mysql=shared,/usr' “--使用mysqli=shared,/usr/lib64/

我正在Linux服务器上使用PHP版本5.3.3。当我尝试使用mysql_connect()或mysqli_connect()访问数据库时,会出现一个错误,错误是:

致命错误:调用未定义的函数mysql\u connect()

致命错误:调用未定义的函数mysqli\u connect()

您可以在此处查看我的测试页面:

您可以在此处看到phpinfo页面:

相关的配置命令如下所示:

'--使用mysql=shared,/usr'
“--使用mysqli=shared,/usr/lib64/mysql/mysql\u config”
“--使用pdo mysql=shared,/usr/lib64/mysql/mysql\u config”

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

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

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

extension=mysql.so
extension=mysqli.so

那么这里出了什么问题?服务器上是否未正确安装mySQL?我怎样才能解决这个问题


附录:我应该解释一下,这是在一个我不管理的共享服务器上。我只能通过SFTP访问服务器上的文件夹。但是我有一个php.ini文件和一个extensions文件夹。那么,这是我可以自己解决的问题,还是需要服务器管理员的帮助?

鉴于您的PHP信息页面没有列出显示MySQL配置的部分,因此您的服务器上可能没有安装MySQL。尝试通过以下方式安装PHP MySQL:

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

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

未加载“mysqli”扩展。在phpinfo()文件中看不到该节

您应该在该页面上看到类似的内容:

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

php.ini
文件中选中“extension\u dir”。然后去看看文件
mysqli.so
是否真的在那里


您重新启动web服务器了吗?

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

5.3.3是从2010年开始的。是否可以放弃历史版本并安装更新的软件?这是我自己可以做的,还是需要服务器管理员来做?我在共享服务器上只有一个文件夹。您的服务器上有问题吗?所以服务器没有mysql!您需要与他们核实服务器是否支持mysql。如果是这样的话,你需要让服务器管理员来修复它,因为你只有一个共享主机。我有一个PHP.ini文件和一个extensions文件夹,但我不知道放在那里什么。我需要获取mysqli.so文件吗?我在哪里买的?我没有尝试重新启动服务器,因为(我假设)只有管理员才能这样做。或者有没有办法重新启动我自己的部分?对不起,我没有意识到你无法访问服务器。在这种情况下,你必须问一个这样做的人,告诉他们mysql没有正确安装。同时,我会要求升级php,就像其他人建议的那样。我还没有找到mysqli.so文件,但这并不意味着它不在服务器上的某个地方。可能我的php.ini文件中的“extension_dir”行设置到了错误的位置。现在,我把它指向了我网站中“cgi-bin”文件夹中一个名为“ext”的(空)文件夹。它应该去别的地方吗?我查看的一个源代码说它应该是extension_dir=“/usr/local/php5/lib/php/extensions/”我在服务器的底部找到了“/usr/local/”文件结构,但其中没有称为“php5”的文件夹。结果是问题出在我的php.ini文件上。不知何故,在我自己的cgi-bin文件夹中有一个就阻止了mysql和mysqli扩展的加载。一旦我删除了php.ini文件,一切正常。投票否决了不再存在的链接(谷歌文档链接,而不是问题链接)。当外部链接过期/被移动(或谷歌文档文件被删除)时,请在答案中包含所有相关细节。