两天来我一直在努力解决这个问题,但不幸的是没有结果。让我告诉你我关于这个问题的故事。我在一个网站上建立了一个应用程序,这个应用程序处理评论。但是,我试图把它放在另一个站点上,我复制了php文件,从旧站点的sql文件,并将它们移动到新站点(它们在不同的ftp服务器上)。当我试图从应用程序转到页面时,收到以下致命错误:
致命错误:调用未定义的函数mysqli\u connect()
我编写的连接到数据库的代码如下(带有隐藏凭据):
$con = mysqli_connect("","*the_name*","*the_pass*","*the_database*");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
为什么我会出错?它在旧服务器上工作,代码我认为这不是问题,因为它在localhost上工作,而在新服务器上不工作。有人能帮我吗?
14条答案
按热度按时间dpiehjr41#
如果您使用的是ubuntu16.04(可能是更高版本),那么您已经有了这个模块,但是默认情况下没有启用。就这么做吧:
wz1wpwve2#
在ubuntu上我不得不安装
php5 mysql
分机:6mzjoqzu3#
所以这可能不是你的问题,但我一直在努力解决这个错误。我发现是什么导致了我的问题,尽管我不能真正解释为什么。
对我来说,mysqli\u connect在任何子目录的页面上建立连接时工作正常。但是由于某种原因,根目录中页面上引用的同一代码返回了此错误。奇怪的是,它在根目录的mamp中的localhost环境中运行良好,但在共享主机上却不是这样。
在努力弄清楚是什么让我从这个“php致命错误”中得到了“error500”白色屏幕之后,我浏览了代码,在php手册建议的错误处理中偶然发现了这段代码(https://www.php.net/manual/en/mysqli.error.php).
我随机决定删除它,然后,瞧,连接到根目录下的数据库。也许有比我聪明的人能解释这一点,为任何与类似问题作斗争的人。
gtlvzcf84#
对于centos,请执行以下操作:
cx6n0qe35#
我的在centos7上对php7有点不同。
在/etc/php.ini中
; 扩展名=mysqli
到
扩展名=mysqli
oymdgrw76#
我按照下面的链接来解决这个问题。确保启用以下模块。
php-r'phpinfo();'|grep-i mysqli公司
链接:https://askubuntu.com/questions/773601/php-mysqli-extension-in-ubuntu-16-04-not-working-after-upgrade-to-version-7-0-6
332nm8kg7#
谈话迟到了。。。
如果安装了模块并正确设置了php.ini文件,请检查apache错误日志,查看以下内容:
php警告:php启动:无法加载动态库“c:\php\ext\php\u mysqli.dll”-找不到指定的模块。
在本例中,扩展目录不是您所认为的。您可能需要显式设置它,例如:
1mrurvl18#
中没有错误,但是您的计算机上没有安装mysqli php扩展。请与您的服务提供商联系以解决此问题。
fae0ux8s9#
在默认情况下不使用php扩展时发生。在php.ini文件中,更改
;extension=php_mysql.dll
至extension=php_mysql.dll
.**如果这个错误日志,那么添加路径到这个dll文件,例如
extension=C:\Php\php-???-nts-Win32-VC11-x86\ext\php_mysql.dll
对…做同样的事php_mysqli.dll
以及php_pdo_mysql.dll
. 保存并再次运行代码。2hh7jdfx10#
如果您自己托管服务器,并且该服务器恰好是apache,那么即使您没有注解,也可能会出现此错误
extension=php_mysqli.dll
在php.ini中。您还需要使用
PHPIniDir
apache的httpd.conf中的指令57hvy0tb11#
在raspberry-pi上,我不得不安装php5-mysql扩展。
安装客户端后,应重新启动Web服务器。如果您使用的是apache,则以下操作应能正常工作:
tyg4sfes12#
如果您自己托管服务器,请在php.ini文件中删除扩展名extension=php\u mysqli.dll前面的分号
uxh89sit13#
新服务器上没有安装mysqli。运行phpinfo()进行确认。
e7arh2l614#
就这么做吧
sudo apt install php-mysqli
它工作得很好,而且是独立于版本的