v2.5.2
Giriş yap

PHP MySQL Sorgu Sonuçları En Sağlıklı Nasıl Alınır?

mrtkcky
462 defa görüntülendi

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

Cevap yaz
Cevaplar (2)
kargasa1982
998 gün önce

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.

kargasa1982
998 gün önce

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.