したがって、何らかの理由で実際に動作したくないコードのこの小さなセクションがあります。私はその理由を理解しようとしてきましたが、役に立ちませんでした。
$mysqli =& db::connect();
$sql = "SELECT * FROM `my_table`";
$result = $mysqli->query($sql);
if( ! $result ) die( "SQL Error ($mysqli->errno): $mysqli->error" );
while($row = $result->fetch_assoc())
{
//Do something here
}
次のエラーが表示されます。
PHP の致命的なエラー: の非オブジェクトに対するメンバー関数 fetch_assoc() の呼び出し
そのスクリプトを実行しようとしたとき。
助言がありますか?
編集: 必要に応じて詳細情報: クエリしようとしているテーブルには 174 のレコードがあります。PHP 5.3 および MySQL 5.1 を実行しています。phpMyAdmin で同じクエリを問題なく実行できます。
編集 2: はい、それは完全なクエリです。var_dump の結果は次のとおりです。
object(mysqli_result)#2 (5) {
["current_field"]=> int(0)
["field_count"]=> int(16)
["lengths"]=> NULL
["num_rows"]=> int(174)
["type"]=> int(0)
}
編集 3: まったく役に立たないので、これを切り取ります。
編集4:
while ループで mysqli_result オブジェクトを使用できない理由に関する情報が見つからないようです。私が見つけたすべての答えは、「mysqli_result があることを確認してください」に戻ってしまいます。これは、上記の var_dump からわかるように、間違いなくそうします。少し後でこれに戻る必要がありますが、どんな提案でも素晴らしいでしょう。
編集5:
$result 変数の二次割り当てのチェックに関するヘッドアップについて @Quassnoi に感謝します。データベースの別の部分のチェックを実行する条件ステートメントがあったため、これはループの実行中に当てはまりましたが、特定の条件のみでした。私はおそらく、そのような小さな条件付きチェックのために準備されたステートメントに固執する必要があります.