v2.5.2
Giriş yap

Php intelephense(1006) hatası

jesujson
579 defa görüntülendi ve 1 kişi tarafından değerlendirildi
public function veriGetir($tablo, $wherealan = "", $wherearray = "", $orderby = "ORDER BY id ASC", $limit = ""){
    $this -> db -> query("SET CHARACTER SET utf8");
    $sql = "SELECT * FROM ".$tablo; // SELECT * FROM tabloadi ekelendi.
    if($wherealan && $wherearray){
        $sql .= " ".$wherealan; // SELECT * FROM tabloadi WHERE id // Eklendi
        if($orderby){$sql .= " ".$orderby;}
        if($limit){$sql .=" LIMIT ".$limit;}
        $start = $this -> db -> prepare($sql);
        $sonuc = $start -> execute($wherearray);
        $veri = $start -> fetchAll(PDO::FETCH_ASSOC);
    }else{
        if($orderby){$sql .= " ".$orderby;}
        if($limit){$sql .=" LIMIT ".$limit;}
        $veri = $this -> db -> query($sql, PDO::FETCH_ASSOC);
    }

    if($veri && $veri != false){
        $datalar = array();
        foreach($veri as $bilgiler){
            $datalar[] = $bilgiler;
        }
    }else{
        return false;
    }

}

$start = $this -> db -> prepare($sql);
$sonuc = $start -> execute($wherearray);

$wherearray kısmında
Expected type 'array|null'. Found 'string'.intelephense(1006)
diye hata alıyorum lütfen yardımcı olurmusunuz.

tayfunerbilen
953 gün önce

fonksiyon'da default olarak $wherearray = "" yerine $wherearray = [] yaparsan problem çözülecektir muhtemelen. Çünkü execute() metodu array ya da null bekliyormuş varsayılan olarak sen string geçiyorsun.