Bir çok yanlış şey bulunuyor prepare fonksiyonu içinden dışarıdan sayısal değer atıyorsunuz daha güvenli olması için prepare kullanmışsınız ama yine güvenlik zafiyeti vermşsiniz prepare tek başına çalışmayacaktır prepare fonksiyonu kullanırken execute yaptırmak zorundasınız normalde girilien değerler execute içine atılır öylece sorgu atılır .

Sorununuza gelecek olursak ilk önce soruguyu çalıştırıp öyle değerleri alacaksınız ;
$sorgu->execute();
$result = $sorgu->rowCount();