现在我试图解决这个问题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,而且在新服务器上它不起作用。任何人都可以帮助我吗?
答案 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