PHP MySQL Sorgu Sonuçları En Sağlıklı Nasıl Alınır?
Merhabalar, bu sıra merak ettiğim ve bir türlü mantık kuramadığım bir problem var.
PHP ile yaptığımız sorgularda, sorgu sonuçlarına göre bir success ve error return ediyoruz. Ancak burada sonucun success mi error mu olduğunu tam olarak yakalayamıyorum.
Örneğin:
$stmt
adında bir değişkene aktardığım sorgum var. Bu sorgu dönüşünü:
if($stmt)
dediğim zaman her halükarda success dönüyor çünkü veri yanlış olsa bile sorgu çalışıyor. Sorgu çalıştığı için de success dönüyor.
if($stmt->rowCount())
kullanınca veya;
if($stmt->rowCount() > 0)
kullanınca, daha doğru bir sonuç elde ediliyor çünkü eğer 1 ve üzeri bir satırda değişiklik yapılıyorsa o zaman success dönüyor. Fakat burada da şöyle bir sıkıntı var, eğer formda hiçbir değişiklik yapmadan güncelle dersem, sorgu yine başarıyla çalışıyor ama bir sütunda değişiklik yapmadığı için yine rowCount'a 0 dönüyor o da siteye error olarak dönüyor.
if($stmt == TRUE);
if($stmt === TRUE);
if($stmt !== FALSE);
if($stmt !=== FALSE);
Tüm hepsini denedim ancak tam olarak sağlıklı sonuç alamamaktayım.
Saygılarımla
update, delete, insert işlemlerinde if($stmt) şeklinde kontrol sağlayabilirsin, bununla amaç veri kontrolü değil zaten, sorgunun hatasız çalışıp çalışmadığını kontrol etmektir.
gelen verilerin uygunluğunu sorgu öncesinde kontrol etmen gerekiyor. Örneğin yeni kayıt eklerken aynı mail adresi ile ikinci bir kayıt olsun istemiyorsan ozanman ekle sorgusu üzerinde rowCount() ile kayıt sayısını sorgulatırsın, sonuç 0 ise insert sorgusu çalışır.