Fatal error: Uncaught Error: Call to a member function rowCount() on boolean hatası
başlıkta yazdığım gibi bir hata alıyorum localde bir sorun olmuyor. Sunucuya yükleyince böyle bir hata alıyorum.
Hatayı aldığım kod kısmını alta bırakıyorum.
<?php
$vList = $db->query("SELECT * FROM news where news_category='30'", PDO::FETCH_ASSOC);
if($vList->rowCount()){
foreach ($vList as $vkey => $List) {
$Dizi[] = $List["news_title"];
}
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (7)
DOĞRU KULLANIMI BU
$deger=30;
$vList = $db->prepare("SELECT * FROM news where news_category=?");
$vList->execute([$deger]);
$say=$vList->rowCount();
$liste=$vList->FETCHALL();
if($say>0){
foreach ($liste as $vkey => $List) {
$Dizi[] = $List["news_title"];
}
}
<?php
$vList = $db->query("SELECT * FROM news where news_category='30'", PDO::FETCH_ASSOC);
if($vList->rowCount()){
foreach ($vList->fetchAll() as $vkey => $List) {
$Dizi[] = $List["news_title"];
}
}
?>
döngüye soktuğun $vList sadece bir sorgu, üst satırda rowCount() ile satır sayısını almışsın ama döngüye fetchAll() ile girmemişsin.
Eğer veritabanından sorgu sonucu dönmüyorsa query()
fonksiyonu false dönüyordur.
Bu durumda siz if koşulunda aslında false->rowCount()
yazmış gibi oluyorsunuz.
Hata da bundan bahsediyor: boolean bir değer üzerinde sanki objeymiş gibi rowCount() fonksiyonu çağırıyorsun
Bu hatadan kurtulmak için if koşulunu değiştirmelisiniz.
$vList = $db->query("SELECT * FROM news where news_category='30'", PDO::FETCH_ASSOC);
if($vList){
foreach ($vList as $vkey => $List) {
$Dizi[] = $List["news_title"];
}
}