Arkadaşlar merhaba, uzun zamandır PHP ile uğraşıyorum ama PDO ile prepared statement kullanırken sürekli bir yerde takılıyorum. Özellikle veritabanına veri eklerken veya güncellerken "Undefined index" veya "Invalid parameter number" gibi hatalar alıyorum. Mesela bindParam ile bindValue arasındaki farkı biliyorum ama yine de bazen değişkenlerin türüyle ilgili sorun yaşıyorum. Geçen gün bir sorgu yazdım, fetch ile çekmeye çalıştığımda sürekli boş döndü, meğerse placeholder isimlerini yanlış yazmışım. Sizce bu tür hataları minimize etmek için en sağlam yöntem nedir? Yoksa ben mi çok takılıyorum bu konuda?
Bir de şu var: PDO’nun hata yakalama modlarını (silent, warning, exception) denedim. Exception modunu kullanmak genelde en iyisi deniyor ama bazı projelerde hata mesajları çok kabarık oluyor, kullanıcıya göstermek istemiyorum. O yüzden try-catch içinde özel hata mesajları mı yazmalıyım, yoksa log tutup geçmek daha mı mantıklı? Bu konuda tecrübesi olan var mı? Özellikle büyük projelerde bu hataların peşine düşmek bazen saatlerimi alıyor.
Son olarak, prepared statement kullanırken SQL injection’a karşı güvende olduğumuzu biliyorum ama yine de bazen "Binding parameters" kısmında dikkatsizlik yapıyorum. Mesela bir dizi içinde gelen verileri bindValue ile teker teker eklemek yerine execute’ye dizi olarak vermek daha mı sağlıklı? Sizin kullandığınız yöntemler neler? Belki de en temel hataları atlamamak için bir kontrol listesi oluşturmak lazım. Deneyimlerinizi paylaşırsanız çok sevinirim.
Bir de şu var: PDO’nun hata yakalama modlarını (silent, warning, exception) denedim. Exception modunu kullanmak genelde en iyisi deniyor ama bazı projelerde hata mesajları çok kabarık oluyor, kullanıcıya göstermek istemiyorum. O yüzden try-catch içinde özel hata mesajları mı yazmalıyım, yoksa log tutup geçmek daha mı mantıklı? Bu konuda tecrübesi olan var mı? Özellikle büyük projelerde bu hataların peşine düşmek bazen saatlerimi alıyor.
Son olarak, prepared statement kullanırken SQL injection’a karşı güvende olduğumuzu biliyorum ama yine de bazen "Binding parameters" kısmında dikkatsizlik yapıyorum. Mesela bir dizi içinde gelen verileri bindValue ile teker teker eklemek yerine execute’ye dizi olarak vermek daha mı sağlıklı? Sizin kullandığınız yöntemler neler? Belki de en temel hataları atlamamak için bir kontrol listesi oluşturmak lazım. Deneyimlerinizi paylaşırsanız çok sevinirim.