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

时间:2014-08-13 08:28:54

标签: php mysql ftp

现在我试图解决这个问题2天,但遗憾的是没有结果。让我告诉你我关于这个问题的故事。我在网站上建立了一个应用程序,该应用程序处理了评论。但是,我试图将它放在另一个站点上,我从旧站点复制了php文件,sql文件,并将它们移动到新站点(它们位于不同的FTP服务器上)。当我试图从应用程序转到页面时,我收到此致命错误:

  

致命错误:调用未定义的函数mysqli_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 个答案:

答案 0 :(得分:24)

如果您自己托管服务器,请在 php.ini 文件中删除扩展名 extension = php_mysqli.dll 前面的分号

答案 1 :(得分:16)

对于CentOS,请执行:

sudo yum install php-mysqli

答案 2 :(得分:11)

简单地做到

sudo apt-get install php-mysqli

它完美无缺,与版本无关

答案 3 :(得分:9)

在Ubuntu上我必须安装php5 mysql扩展。

apt-get install php5-mysql

答案 4 :(得分:5)

默认情况下未使用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。保存并再次运行您的代码。

答案 5 :(得分:4)

新服务器上未安装mysqli PHP扩展。

与您的服务器管理员联系。

答案 6 :(得分:1)

如果您自己托管服务器,并且该服务器恰好是Apache,即使您在php.ini中有未注释的extension=php_mysqli.dll,也会出现此错误。

你还需要在Apache的httpd.conf中使用PHPIniDir指令告诉Apache在哪里找到php.ini

AddHandler application/x-httpd-php .php
PHPIniDir "<path-to-folder-where-php-ini-lives>"

答案 7 :(得分:1)

在centos7上,我的php7略有不同。

在/etc/php.ini中

; extension = mysqli

extension = mysqli

答案 8 :(得分:0)

没有错误,但你的机器上没有安装mysqli PHP扩展。请与您的服务提供商联系以解决此问题。

答案 9 :(得分:0)

Mysqli尚未安装在新服务器上。运行phpinfo()进行确认。

<?php 

phpinfo();

答案 10 :(得分:0)

在Raspberry Pi上我必须安装php5 mysql扩展。

apt-get install php5-mysql

安装客户端后,应重新启动Web服务器。如果您使用的是apache,则以下内容应该有效:

sudo service apache2 restart

答案 11 :(得分:0)

如果您使用ubuntu 16.04(可能及以上),您已经拥有此模块但默认情况下未启用。就这样做:

Set<Integer> filter = new HashSet<>();
OptionalInt c = str.chars().filter(e -> !filter.add(e)).findFirst();

if (c.isPresent()) {
   // You can access your repeated char here
   (char) c.getAsInt();
}

答案 12 :(得分:0)

所以这可能对您来说不是问题,但我一直在努力解决此错误。我发现了造成我问题的原因,尽管我无法真正解释原因。

对我来说,在任何子目录下的页面上进行连接时,mysqli_connect都可以正常工作。但是由于某种原因,在根目录页面上引用的相同代码返回此错误。奇怪的是,它在根目录下的MAMP的本地主机环境中运行正常,但是在我的共享主机上却没有。

在努力找出导致该“ PHP致命错误”的“错误500”白屏的原因之后,我遍历了代码,并偶然发现了PHP手册([{ 3}})。

if (!mysqli_query($link, "SET a=1")) {
    printf("Error message: %s\n", mysqli_error($link));
}

我随机决定删除它,瞧,连接到在根目录下工作的数据库。也许比我更聪明的人可以为遇到类似问题的任何人解释这一点。

答案 13 :(得分:0)

我点击了以下链接以解决此问题。确保启用以下模块。
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