ホームページ >バックエンド開発 >PHPチュートリアル >PHP 警告: mysqli_query():解決策
PHP テクノロジーの継続的な開発と使用により、問題やエラーが発生することがあります。その中でも、PHP が提供する MySQLi 関数ライブラリは、開発者が MySQL データベースを操作するためによく使用するツールです。 mysqli_query() 関数を使用すると、「PHP 警告: mysqli_query(): (HY000/2006): MySQL サーバーが消えました。」という一般的なエラー メッセージが表示されることがあります。このエラー メッセージは開発プロセスの妨げになる可能性があります。エラーを見つけた場合は、PHP コードが正しく動作できるように、できるだけ早く解決策を見つける必要があります。
以下に、考えられる解決策をいくつか紹介します。
このエラーが発生した場合は、まず PHP コードを確認する必要があります。 MySQLi 接続ステートメント間のギャップが長すぎないか、または MySQLi 接続が維持されていないかを確認してください。大量のデータを処理する場合、このエラーが発生する可能性が高くなります。
接続タイムアウトの設定が短すぎる場合、MySQL データベースは接続プロセス中に接続を閉じ、ブラウザにエラー メッセージを表示します。ほとんどの場合、接続タイムアウトを長く設定すると、このエラーの発生頻度が減ります。
解決策:
MySQLi の ping() 関数を使用して、接続ステータスを維持し、MySQLi 接続が正常かどうかを確認できます。この方法では、接続が予期せず終了する問題を簡単に解決できます。
コードでは必ず次の構文を使用してください。
// Mysqli连接语句 $conn = mysqli_connect($servername, $username, $password, $dbname); // 判断数据库连接是否可用 if (mysqli_ping($conn)) { echo 'MySQL connection is still active!'; } else { echo 'MySQL connection is dead.'; }
データ量が多い場合は、次のことができます。接続の安定性を向上させるためにタイムアウト期間を長くします。次のコード スニペットを使用できます。
// 设置超时时间 (单位为秒) ini_set('mysqlI.connect_timeout', 3600); ini_set('mysqlI.default_socket_timeout', 3600);
エラー メッセージには、実際のエラー メッセージだけでなく、データベース エラー メッセージも含まれる場合があります。 。データベース サーバーのログにアクセスすると、エラーに関する詳細情報を取得できます。
MySQL データベースは、起動時に /etc/my.cnf や /etc/mysql/my.cnf などの構成ファイルをロードします。次のパラメータをこの設定ファイルに追加する必要があります:
max_allowed_packet = 128M wait_timeout = 28800 innodb_flush_log_at_trx_commit = 2 innodb_buffer_pool_size = 1G
その中で、max_allowed_packet は 1 つの SQL クエリ ステートメントで許可される最大送信サイズ (バイト単位) を設定できます。このパラメータのデフォルト値は 4MB です。実際のニーズに応じて調整できます。 wait_timeout パラメータは、MySQL 接続のアイドル時間を秒単位で設定できます。この時間が長すぎると、サーバーのパフォーマンスが低下します。短くすると、タイムアウトにより接続が失われる可能性があります。 innodb_flush_log_at_trx_commit および innodb_buffer_pool_size パラメータは、MySQL 接続のパフォーマンスと安定性を向上させることができ、必要に応じて調整できます。
上記の方法を試しても問題が解決しない場合は、最後に MySQL データベース自体に問題があるかどうかを確認してください。たとえば、次のような MySQL 独自のツールを診断と修復に使用できます。
mysqlcheck -o -A
このコマンドは、MySQL データベースの整合性チェックと修復を実行します。このコマンドには管理者権限が必要であり、このコマンドを実行するには root または同等の権限を持つユーザーである必要があります。
概要
上記は、「PHP 警告: mysqli_query(): (HY000/2006): MySQL サーバーが消えました」エラーが発生した場合に試せる解決策です。 MySQLi は PHP 開発でよく使われるツールであり、このようなエラーが発生するとコード開発に多大な支障をきたしますが、上記の方法を使用することで修復することで問題を解決し、コードの安定性と信頼性を向上させることができます。
以上がPHP 警告: mysqli_query():解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。