Php intelephense(1006) hatası
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.
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.