現在の位置: ホーム> 最新記事一覧> mysqli :: $ server_infoが通常原因となるnull値を返す理由は何ですか、一般的なエラーと対応するソリューションは何ですか?

mysqli :: $ server_infoが通常原因となるnull値を返す理由は何ですか、一般的なエラーと対応するソリューションは何ですか?

gitbox 2025-06-21
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// コードのこの部分は、記事の内容とは何の関係もありません,例としてのプレースホルダー</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"これは、記事の冒頭では関係のないコンテンツの例です。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>mysqli::</span><span><span class="hljs-variable">$server_info</span></span><span> 通常、ヌル値を返す原因は何ですか?,一般のなエラーと対応するソリューションは何ですか?</h1>

<p>使用中 PHP の <code>mysqli

上記のコードでは、 $ mysqli-> connect_errorが空でない場合、接続が失敗したことを意味します。現時点では、 $ mysqli-> server_infoが空になる可能性があります。

共通エラー1 :接続エラーは接続障害を引き起こします

ユーザー名やパスワード、データベースアドレスなど

共通エラー2 :プロパティにアクセスすると接続が失敗しました

$ mysqli-> server_infoに直接アクセスしますが、接続が成功したかどうかは判断しませんでした。

共通エラー3 :マルチスレッドまたは非同期環境で異常なオブジェクト状態

MySQLIオブジェクトの状態は不安定であり、プロパティの読み取り例外を引き起こす可能性があります。

3。解決策

  1. 接続が成功した後、必ずserver_infoにアクセスしてください
    $ mysqli-> connect_errorまたは$ mysqli-> connect_errnoを使用して接続ステータスを確認します。
  2. 例外処理メカニズムを使用<br> mysqli_report(mysqli_report_error | mysqli_report_strict)をオンにしてエラーをキャッチするには);沈黙の失敗を避けるため。
  3. MySQLサーバーが正常に実行されていることを確認してください<br> データベースサーバーのステータスを確認し、バージョン情報が利用可能であることを確認します。
  4. 接続が閉じた後、プロパティへのアクセスを避けてください<br> Close()を呼び出す前に、関連するプロパティを使用して、オブジェクトの状態の例外を避けてください。

4。改善コードの例

</span><span><span class="hljs-title function_ invoke__">mysqli_report</span></span><span>(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-string">'user'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-string">'database'</span></span><span>);

    </span><span><span class="hljs-comment">// 接続が成功していることを確認してください</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_errno) {
        </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">Exception</span></span><span>(</span><span><span class="hljs-string">"接続に失敗しました: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
    }

    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"MySQL サーバーバージョン: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->server_info;

    </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"エラーメッセージ: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}

5。概要

mysqli :: $ server_infoがnull値を返す場合、最初に行うべきことは、mysql接続が成功しているかどうかを確認することが最も一般的な理由です。第二に、このプロパティへのアクセスのタイミングに注意し、MySQLIオブジェクトが有効な接続状態にあることを確認してください。最後に、エラー報告と例外キャプチャメカニズムの合理的な使用は、問題を迅速に見つけて解決するのに役立ちます。