私はLinuxシステムでphp(7.3)とmysqlを使用しています。ただし、Fatal error: Uncaught Error: Class 'mysqli' not found in /var/www/html/
apache2 log file()でPHPエラーが発生します/var/log/error.log
。いくつかの回答を確認しました。致命的なエラー: 'MySQLi' クラスが見つかりません。。しかし、成功しませんでした。
フォーム handler.php
<?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'; }
?>
編集1
次のコマンドが実行されました。
apt install php-mysql
apt-get install php-mysqlnd
編集2
次のコードを使用して新しいPHPファイルを作成しました。
<?php
phpinfo(INFO_MODULES);
?>
そしてアドインモジュールに mysqli は表示されません。しかし、実行するとapt install php-mysql
php-mysqlはすでに最新バージョン(2:7.3+69)..
答え1
どのオペレーティングシステムを使用しているか教えてくれませんでした。しかし、あなたが言及したので、Ubuntuやapt-get
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
インストールしたバージョンをメモしてください。私の設定など、7.2以外の場合は、バージョンに合わせて将来のチェックを変更する必要があります。
確認2
私はUbuntu 19.04の設定を見ましたが、mysqliでは現在php7.2-mysql
。/usr/lib/php/20170718/mysqli.so
find /usr/lib/php -name mysqli.so
確認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
PHPの使用方法がモジュールをロードするように設定されていることを確認してください。これを行うように構成されていない場合は、構成に再度追加できます。
cd /etc/php/7.2/fpm/conf.d
ln -s ../../mods-available/mysqli.ini 20-mysqli.ini
提供された証拠によると、確認3が原因である可能性が最も高いですが、エラーが発生しやすい項目でもあります。
答え2
PHPのインストールにmysqlモジュールがありません。php -i
シェルにインストールされていることを確認できます。そうでない場合は、インストールしてみてください。
Ubuntuの場合:
apt install php-mysql
CentOSの場合:
yum install php-mysql
答え3
MySQLのバージョンがPHPのバージョンと互換性があることを確認してください。
詳細:-
まず、phpinfoページにmysqliインストール情報があることを確認してください。そうでなければ...
、コンピュータにインストールされていると思いますが、実行されていない場合はインストールしてください。
次に、MySQLのバージョンがPHPのバージョンと互換性があることを確認してください。
まず、このペアをMySQLとPHPに使用しました。
- php:7.4-apache&mysql:5.7(しかし、私はうまくいかず、 'mysqli'クラスが見つからないというエラーが表示されます)
その後私はインストールしました。
- php:7.2-apacheとmysql:5.7そしてこれは私には大丈夫です。