これはよくある問題ですが、すでに私の研究をしていて解決策を見つけることができませんでした。だから私はここにいる。プリペアドステートメント(fetch_assoc()関数)でSELECT中にPHPエラーが発生しました
私は取得していますエラーは次のとおりです。致命的なエラー:非オブジェクト
上メンバ関数FETCH_ASSOC()の呼び出しまず、私はmysqlndが有効になっています。第二に、私のクエリにはエラーはありません。私は問題なくphpmyadminで実行することができます。
SELECT * FROM photos WHERE name LIKE '%ait%'
UNION
SELECT photos.* FROM photos, photo_tag, tags
WHERE photo_tag.photo_id = photos.id
AND photo_tag.tag_id = tags.id
AND tags.name IN('ait')
そして、ここでは、エラーが(より具体的にFETCH_ASSOCで()関数)が起こるコードです:ここで
は、クエリのthatsが実行されている
$stmt = $this->conn->prepare($query);
if($stmt){
$stmt->execute();
while($row = $stmt->get_result()->fetch_assoc()){
$photo = new Photo(null, null, null, null);
$photo->id=$row["id"];
$photo->userId=$row["user_id"];
$photo->name = $row["name"];
$photo->photoPath=$row["photo_path"];
$result[] = $photo;
}
return $result;
}else{
var_dump($this->db->error);
}
もしあなたが私にこれを手伝ってもらえれば、私はとても感謝しています。
FROM table1、table2、table3ではなくLEFT JOINを使用します。問題はSQLクエリ –
@EduardVoidにあります。 JOINを作る方法はあります。 JOINや私のやり方を使って。 –