Selam dostlar, uzun zamandır forumu takip ediyorum ama ilk kez konu açıyorum. Elimde 2005'ten kalma, bir arkadaşımın bıraktığı eski bir PHP scripti var. Script, MySQL 4.1 ile çalışan bir kütüphane sitesi. PHP 5.2 döneminde yazılmış, mysql_* fonksiyonlarını kullanıyor. Şimdi bunu PHP 8.2 çalışan bir sunucuda ayağa kaldırmaya çalışıyorum. Malum mysql_* fonksiyonları kaldırıldı, ben de tüm sorguları PDO ile yeniden yazmaya başladım. Ama bir yerde takıldım.
Scriptte şöyle bir sorgu var: SELECT * FROM kitaplar WHERE yazar = 'Orhan Pamuk' AND yil > 2000 ORDER BY yil DESC. Ben bunu PDO prepared statement ile şöyle yazdım: $stmt = $pdo->prepare('SELECT * FROM kitaplar WHERE yazar = :yazar AND yil > :yil ORDER BY yil DESC'); $stmt->execute(['yazar' => 'Orhan Pamuk', 'yil' => 2000]);. Ama sürekli şu hatayı alıyorum: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined. Benzer sorguları başka scriptlerde de kullandım, neden burada hata veriyor anlamadım. Yardımcı olursanız sevinirim, kafayı yiyeceğim.
Scriptte şöyle bir sorgu var: SELECT * FROM kitaplar WHERE yazar = 'Orhan Pamuk' AND yil > 2000 ORDER BY yil DESC. Ben bunu PDO prepared statement ile şöyle yazdım: $stmt = $pdo->prepare('SELECT * FROM kitaplar WHERE yazar = :yazar AND yil > :yil ORDER BY yil DESC'); $stmt->execute(['yazar' => 'Orhan Pamuk', 'yil' => 2000]);. Ama sürekli şu hatayı alıyorum: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined. Benzer sorguları başka scriptlerde de kullandım, neden burada hata veriyor anlamadım. Yardımcı olursanız sevinirim, kafayı yiyeceğim.