web-dev-qa-db-ja.com

致命的なエラー:未定義関数mysqli_connect()の呼び出し

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();
}

エラーが発生するのはなぜですか?古いサーバーで動作しますが、ローカルホストでは動作し、新しいサーバーでは動作しないため、問題ではないと思うコードです。誰も私を助けることができますか?

31
Emi

サーバーを自分でホストする場合は、php.iniファイルで拡張子の前のセミコロンを削除しますextension = php_mysqli.dll

27
Dave O'Dwyer

CentOS の場合:

Sudo yum install php-mysqli
18
Zoran

簡単にやる

Sudo apt-get install php-mysqli

完全に機能し、バージョンに依存しません

Ubuntuでは、php5 mysql拡張機能をインストールする必要がありました。

apt-get php5-mysqlのインストール

9
Rehmat

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.dllphp_pdo_mysql.dllについても同じことを行います。コードを保存して再度実行します。

5
RemyG

会話に遅れて...

モジュールがインストールされ、PHP.INIファイルが適切に設定されている場合は、Apacheエラーログで次のようなものを確認してください。

PHP警告:PHPスタートアップ:動的ライブラリ 'C:\ php\ext\php_mysqli.dll'をロードできません-指定されたモジュールが見つかりませんでした。

この場合、拡張ディレクトリは思ったとおりではありません。次のように明示的に設定する必要がある場合があります。

extension_dir="C:\xampp\php\ext"
2
Jahmic

Centos7のphp7では、私のものが少し異なっていました。

/etc/php.ini内

; extension = mysqli

extension = mysqli

1
doapydave

サーバーを自分でホストし、そのサーバーがApacheである場合、php.iniでextension=php_mysqli.dllのコメントを外していても、このエラーが発生する可能性があります。

また、Apacheのhttpd.confでPHPIniDirディレクティブを使用して、php.iniの場所をApacheに指示する必要があります。

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

ubuntu 16.04(おそらく以上)を使用している場合、このモジュールは既にありますが、デフォルトでは有効になっていません。これを行うだけです:

Sudo phpenmod mysqli
1
Yu Jiaao

Mysqliは新しいサーバーにインストールされていません。 phpinfo()を実行して確認します。

<?php 

phpinfo();
0
Goldbug

にエラーはありませんが、mysqli PHP拡張モジュールがマシンにインストールされていません。この問題を解決するには、サービスプロバイダーにお問い合わせください。

0
Utkarsh Dixit

Raspberry Piでは、php5 mysql拡張機能をインストールする必要がありました。

apt-get install php5-mysql

クライアントをインストールしたら、ウェブサーバーを再起動する必要があります。 Apacheを使用している場合、以下が機能するはずです。

Sudo service Apache2 restart
0
Mohamad Osama