ホームページ  >  記事  >  バックエンド開発  >  vbsubscribetouser.php ファイルで「致命的エラー: mysqli_result 型のオブジェクトを配列として使用できません」エラーが発生するのはなぜですか?

vbsubscribetouser.php ファイルで「致命的エラー: mysqli_result 型のオブジェクトを配列として使用できません」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 17:48:31803ブラウズ

Why am I getting the

「致命的なエラー: mysqli_result 型のオブジェクトを配列として使用できません」

Web サイトにアクセスしようとすると、謎のエラー メッセージ「致命的なエラー: を使用できません」が表示されました。配列としての mysqli_result 型のオブジェクト。」この難問は、vbsubscribetouser.php ファイルの 303 行目で発生しました。

この問題の原因を説明するために、303 行目を詳しく調べてみましょう。

<code class="php">if (in_array($followingdata['usergroupid'], explode("|", $vbulletin->options['subscribetouser_usergroups_cannot']))){</code>

ここで、コードは、要求されたユーザー名は、ユーザーのグループ ID が制限されたユーザー グループのリストに存在するかどうかを確認することによって追跡できます。制限されたユーザー グループのリストは、パイプ ('|') 文字を区切り文字として使用せず、構成オプション submittouser_usergroups_cannot に格納されている文字列を分割することによって、配列として取得されます。

エラーの根本は、次の点にあります。 $followingdata 変数には、mysqli_result 型のオブジェクトが含まれています。このタイプのオブジェクトは、データベースに対して実行されたクエリの結果を表すため、配列として直接扱うことはできません。

この状況を修正するには、結果オブジェクトから実際のデータをフェッチし、それを格納する必要があります。配列。これは、mysqli_result オブジェクトの fetch_assoc() または fetch_array() メソッドを使用して実現できます。

問題のあるコード行を変更する方法は次のとおりです:

<code class="php">$followingdata = $result->fetch_assoc()</code>

または

<code class="php">$followingdata = $result->fetch_array(MYSQLI_ASSOC);</code>

これらの変更を組み込むことで、$followingdata 変数に配列形式で目的のデータが含まれるようになり、前述のエラーが発生することなく後続の論理チェックを続行できるようになります。

以上がvbsubscribetouser.php ファイルで「致命的エラー: mysqli_result 型のオブジェクトを配列として使用できません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。