113

私はチュートリアルを行っていますが、このエラーが発生しています:

致命的なエラー: 8 行目にクラス 'MySQLi' が見つかりません (長い URL)

8 行目のコードは次のとおりです。

$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name);

私のphpinfo()でオンになっているかどうかを確認するよう誰かが言ったオンラインを見ましたが、「mysqli」の下には何もリストされていませんでした。

また、PHP バージョン 5.2.5 を実行しています

4

26 に答える 26

99

MySQLiをインストールするだけでよいようです。

それを行ってもまだ問題があると思われる場合は、お使いのオペレーティング システムと、それをさらに診断するのに役立つその他の情報を投稿してください。

于 2009-03-20T16:07:34.473 に答える
50

次のコードを実行して、mysqli ライブラリが存在するかどうかを確認できます。

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
    echo 'We don\'t have mysqli!!!';
} else {
    echo 'Phew we have it!';
}
于 2009-03-21T21:12:28.850 に答える
41

Ubuntuを使用している場合は、次を実行します。

 sudo apt-get install php-mysqlnd
于 2014-03-20T06:35:15.720 に答える
29

名前空間を持つクラス内から「new mysqli(..)」を呼び出している場合、同様のエラーが表示されることがありますFatal error: Class 'foo\bar\mysqli' not found in。これを修正する方法は、次のように前にバックスラッシュを付けてルート名前空間に明示的に設定することです。

<?php 
$mysqli = new \MySQLi($db_server, $db_user, $db_pass, $db_name);
于 2015-03-09T02:06:14.573 に答える
15

php.iniのphp_mysqli.dll拡張子のコメントを外すだけでなく、 php.iniのextension_dirディレクティブのコメントも外し、場所を指定します。

extension_dir = "C:\software\php\dist\ext"

これでうまくいきました。

于 2010-10-22T19:16:53.437 に答える
5

私のOSUbuntuです。次を使用してこの問題を解決しました。

sudo apt-get install php5-mysql
于 2014-07-15T02:23:01.857 に答える
2

インストールに問題があるようです。

  • MySQLi をインストールしましたか?
  • php.ini で有効化しましたか?
  • Apache や PHP-FPM を再起動しましたか?

http://www.php.net/manual/en/mysqli.installation.php

于 2009-03-20T16:08:48.433 に答える
1

PHP の新規インストールでは、php.iniの;beforeを削除します。extension_dir

于 2019-03-23T00:52:57.960 に答える
0

一部のディストリビューション ( Gentooなど) では、PHP の複数のインストールがサポートされているため、mysqli がインストールされて有効になっているディストリビューションを使用していることを確認する必要があります。

Gentoo では、新しい PHP (mysqli USE フラグを有効にして) をインストールしましたが、新しいバージョンの PHP を有効にする必要がありました (古いバージョンには mysqli がなかったに違いないため)。

# eselect php list apache2
  [1]   php5.3 *
  [2]   php5.5
# eselect php set apache2 2
You have to run `/etc/init.d/apache2 restart' for the changes to take effect
# /etc/init.d/apache2 restart
于 2013-11-16T01:55:50.517 に答える
0

上記のすべてを確認しましたが、うまくいきませんでした。

私が見つけたいくつかのステップがあります。

Ubuntu 14.04でPHPバージョン5.5.9-1ubuntu4.17を使用しました

まずはフォルダを確認

#ls /etc/php5/mods-available/
json.ini  mcrypt.ini  mysqli.ini  mysql.ini  mysqlnd.ini  opcache.ini  pdo.ini  pdo_mysql.ini  readline.ini  xcache.ini

mysqli.iniが含まれていない場合は、他の回答を読んでインストールしてください。

extension_dir のphp.ini検索を開く

私の場合、設定する必要がありますextension_dir = /usr/lib/php5/20121212

そして apache2 を再起動します:/ect/init.d/apache2 restart

于 2016-07-18T08:03:54.210 に答える
0

この問題は、.htaccess ファイルの構成ミスによっても発生する可能性があります。

于 2021-09-02T10:01:06.677 に答える
0

長い分析手順の後、この問題の解決策を見つけました。コマンドライン機能を使用してphpインストールを適切にテストした後、phpが正常に機能し、mysqlデータベースで機能することがわかりました。ところで。コマンド php -f filename.php を使用して、php コードでコードファイルを実行できます

内部に phpinfo() 関数だけを含むファイルを作成しました。
ここで、
Loaded Configuration File
の行 に私の設定ファイルが読み込まれておらず、代わりに (none) と記載されていることがわかりました。

最後に、Apache構成内でエントリを見つけました

<IfModule php5_module>
    PHPINIDir "C:/xampp/php"
</IfModule>

しかし、PHP 7 をインストールしたので、エントリがなかったため、Apache は php.ini ファイルをロードできませんでした。追加した

<IfModule php7_module>
    PHPINIDir "C:/xampp/php"
</IfModule>

再起動後、Apache はすべて正常に動作します。

上記のコード ブロックは、httpd-xampp.conf ファイルで見つけました。それがあなたの構成のどこかにあるかもしれません。
同じファイルで、php 5バージョンの代わりにphp 7の設定を変更する前に変更しました。

#
# PHP-Module setup
#
#LoadFile "C:/xampp/php/php5ts.dll"
#LoadModule php5_module "C:/xampp/php/php5apache2_4.dll"
LoadFile "C:/xampp/php/php7ts.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

ご覧のとおり、xampp パッケージがインストールされていますが、この問題は Apache 側だけにありました。

于 2018-11-01T19:58:27.707 に答える
-2
<?php  /* If the error is due to calling mysqli in a class */

    class dbconnect extends mysqli{

        private $host = 'localhost';
        private $user = 'root';
        private $pass = '';
        private $db = 'test';

        public function __construct() {
            parent::__construct($this->host, $this->user, $this->pass, $this->db);

            if (mysqli_connect_error()) {
                die('Connect Error (' . mysqli_connect_errno() . ') ' .
                    mysqli_connect_error());
            }
        }
    }
?>
于 2014-10-20T11:08:52.547 に答える