我正在 linux 机器上使用 php(7.3) 和 mysql。但是我Fatal error: Uncaught Error: Class 'mysqli' not found in /var/www/html/在 apache2 日志文件 ( /var/log/error.log) 中收到 PHP错误。我检查了几个答案Fatal error: Class 'MySQLi' not found。但没有奏效。
<?php
$conn = new mysqli("localhost", "root", "root", "Users");
// Check connection
if ($conn->connect_errno) {
die("Connection failed: " . $conn->connect_error);
}
else
echo "Connected successfully";
$username = $_POST["username"];
$password = $_POST["password"];
$query = "SELECT * FROM Users WHERE username = " . $username . " AND password =" . $password;
$re = mysqli_query($query);
if (mysqli_num_rows($re) == 0)
{ echo 'Not Logged In'; }
else
{ echo 'Logged In'; }
?>
Run Code Online (Sandbox Code Playgroud)
已经完成执行以下命令
apt install php-mysql
apt-get install php-mysqlnd
我使用以下代码创建了新的 php 文件
<?php
phpinfo(INFO_MODULES);
?>
Run Code Online (Sandbox Code Playgroud)
并且在其他模块中它不显示 mysqli但当我执行apt install php-mysql它时显示 php-mysql 已经是最新版本(2:7.3+69)..
您还没有告诉我们您使用的是哪个操作系统。但是既然你已经提到了,apt-get那么我假设你使用的是类似于 Ubuntu 或 Debian 的东西。它们具有相对相似的配置设置。
检查 1
该软件包php-mysql应依赖于php7.2-mysql或类似,因此首先检查是否已安装,例如:
dpkg --list | grep 'php.*mysql'
ii php-mysql 2:7.2+69ubuntu1 all MySQL module for PHP [default]
ii php7.2-mysql 7.2.19-0ubuntu0.19.04.1 amd64 MySQL module for PHP
Run Code Online (Sandbox Code Playgroud)
请记下您安装的版本,如果不是像我的设置那样的 7.2,您将需要更改以后的检查以匹配您的版本。
检查 2
我刚刚查看了我的 Ubuntu 19.04 设置,mysqli 目前安装了自己的共享库,属于该php7.2-mysql包并安装到/usr/lib/php/20170718/mysqli.so.
find /usr/lib/php -name mysqli.so
Run Code Online (Sandbox Code Playgroud)
检查 3
PHP 要使用该模块,需要指示它加载它。根据您设置 PHP 运行的方式,您可能需要查看不同的位置。但是对我来说,在 phpfpm 下运行 PHP 7.2,加载 mysqli 的指令位于:/etc/php/7.2/fpm/conf.d/20-mysqli.ini.
检查您是否加载了模块:
grep mysqli.so /etc/php/7.2/*/conf.d/*
/etc/php/7.2/cli/conf.d/20-mysqli.ini:extension=mysqli.so
/etc/php/7.2/fpm/conf.d/20-mysqli.ini:extension=mysqli.so
Run Code Online (Sandbox Code Playgroud)
确保您使用 PHP` 的任何方式都配置为加载模块。如果未配置为这样做,那么您应该能够添加回配置:
cd /etc/php/7.2/fpm/conf.d
ln -s ../../mods-available/mysqli.ini 20-mysqli.ini
Run Code Online (Sandbox Code Playgroud)
鉴于您所展示的证据,检查 3 最有可能成为原因,但它也最容易出错。
| 归档时间: |
|
| 查看次数: |
15255 次 |
| 最近记录: |