Invalid parameter number hatası
$where= 'yazarlar.yazar like ? ' ;
$array='%' . $searched . '%';
$yazi_arama = $db->Verigetir(
"burada inner join ile tablolarımı bağlıyorum",
"where $where",
array($array),
"order BY yazilar.ID ASC"
);
Gelişmiş arama sayfası yapmaya çalışıyorum.
Şimdi benim arama seçimine uygun olarak where kriterini arttırıp, ona göre array içini de arttırarak tanımlamam lazım.
ŞU AŞAĞIDAKİ KISMIN doğru yazımı nedir?
$where= 'yazarlar.yazar like ? or yazilar.icerik like ?' ;
$array='%' . $searched . '%', '%' . $searched . '%';
UYARI: Invalid parameter number: number of bound variables does not match number of tokens
yazıyor sanırım $where veya $array değişkenini çoğaltamadım.
Bir kontrol edebilir misiniz? doğru yazım nedir?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
böyle dene
$array = ['%' . $searched . '%', '%' . $searched . '%'];
// ...
"where $where",
$array,
"order BY yazilar.ID ASC"
// ...
hatalı yazmışım düzelttim. Verileri Fonksiyon ile çağırıyorum onda sorun yok.
sadece benim en sonda yazdığım $where ve $array içinin yazımını doğru yapmam lazım. O kısma bakar mısın?
Bu çalışıyor:
$where= 'yazarlar.yazar like ? ' ;
$array='%' . $searched . '%';
Bunun yazımında sorun var : tek tırnak nokta virgül vs bunların yazım şeklinde hata var:
$where= 'yazarlar.yazar like ? or yazilar.icerik like ?' ;
$array='%' . $searched . '%', '%' . $searched . '%';
UYARI: Invalid parameter number: number of bound variables does not match number of tokens
Bir kontrol edebilir misiniz? doğru yazım nedir?
dostum getData yerine prepare yada query olması gerekmiyor mu? bu nasıl bir methot