v2.5.2
Giriş yap

Fatal error: Uncaught Error: Call to a member function rowCount() on boolean hatası

xahmetkilic
1,140 defa görüntülendi

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"];
	    }
    }

?>
PHP
Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (7)
kartal
1007 gün önce

vlist var dump ilw test et önce doluysa kontrolü onun üstünden yap birbaşka şeyde pdo feth sorgudan sonra bir değişkene result et bu ijisinden birini yap olacak

qplot
1008 gün önce

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
kargasa1982
1008 gün önce
<?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"];
	    }
    }

?>
PHP

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.

ebykdrms
1008 gün önce

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"];
    }
}
PHP
mubado
1008 gün önce

bir kontrol et $vList den ne geliyor

print_r($vList);
die();
PHP

Büyük ihtimalle $vList boş geliyor olabilir.

bu yüzden en başta isset kullanmalısın yani

if(isset($vList) && $vList->rowcount()) 
PHP

gibi

munzevi
1008 gün önce

yontemi degiskende tutup dene. $sayi = $vlist->rowCount() gibi

tapsin
1008 gün önce

Sunucu da php extention eksik onları kontrol et.