PHP PDO OOP CRUD rowCount() = 0 durumu

tam1gamer1

Decipat
Katılım
11 Ağustos 2022
Mesajlar
410
Çözümler
19
Merhaba, eğer sorguda hata olursa false döndersin ve bu hata mesajını kaydetsin istiyorum fakat sql sorgusu sorunsuz çalışıyor ama sql sorgusundan dönen değer 0 olursa sanki hata varmış gibi oluyor bunu nasıl aşabilirim ?
1660223644219.png

1660223719728.png
 
Son düzenleyen: Moderatör:
PHP:
if ($stmt == 0 || $stmt)

Sorunu çözebilir. Fakat if içinde tekrar 0 ise sadece true dön diye algoritma yazarsanız hata vermez. Yoksa yine hata verecektir.

Umarım anlatabilmişimdir.

Edit: tekrar düşündüm de rowCount zaten 0 ise veri yok demektir. Yani burada bir tezatlık var. Hem 0 ise hata yazsın istiyorsunuz hemde 0 ise hata vermesin istiyorsunuz. Başka bir algoritma lazım buna. Aşılabilir ancak Stackoverflow gibi sitelerden daha hızlı çözüme ulaşabilirsiniz.
 
PHP:
if ($stmt == 0 || $stmt)

Sorunu çözebilir. Fakat if içinde tekrar 0 ise sadece true dön diye algoritma yazarsanız hata vermez. Yoksa yine hata verecektir.

Umarım anlatabilmişimdir.

Edit: tekrar düşündüm de rowCount zaten 0 ise veri yok demektir. Yani burada bir tezatlık var. Hem 0 ise hata yazsın istiyorsunuz hemde 0 ise hata vermesin istiyorsunuz. Başka bir algoritma lazım buna. Aşılabilir ancak Stackoverflow gibi sitelerden daha hızlı çözüme ulaşabilirsiniz.
Evet hocam işte algoritmamda bir sorun var ama ilerde hata olursa da log olarak tutmak istiyorum.
Hatayı tek bir yerde yakalıyım -readDataByRowCount() içinde- dedim bu sefer hata okuması zorlaşıyor tam olarak nerede çıktığı anlaşılamıyor.
 
Hocam eğer checkUserEmail() fonksiyonunda if koşulu koymazsam hatayı yakalayamıyorum o zaman.

Bence senin "hata" anlayisinda problem var.
User email'inin bulunamamasi durumu, yani 0 count olmasi durumu bir hata degil. ( Exception degil )
DB'ye baglanamaman bir hata durumu.

Kod:
try{
row_count = stmt.execute() // check email
if(row_count == 0) // email yok
// email yoksa ne yapiyorsan buraya, hata degil bu
else
// varsa buraya
}catch e:
// hata burada

Temiz kod yazma prensipleri arasinda altin kuraldir, exceptional bir olay degilse ona exception gibi davranmamalisin. Kullanicinin emailinin DB'de bulunmamasi exception olmamali. Program acisindan hata degil. Kullanici acisindan "hata" olabilir, o baska mevzu.
 
Bence senin "hata" anlayisinda problem var.
User email'inin bulunamamasi durumu, yani 0 count olmasi durumu bir hata degil. ( Exception degil )
DB'ye baglanamaman bir hata durumu.

Kod:
try{
row_count = stmt.execute() // check email
if(row_count == 0) // email yok
// email yoksa ne yapiyorsan buraya, hata degil bu
else
// varsa buraya
}catch e:
// hata burada

Temiz kod yazma prensipleri arasinda altin kuraldir, exceptional bir olay degilse ona exception gibi davranmamalisin. Kullanicinin emailinin DB'de bulunmamasi exception olmamali. Program acisindan hata degil. Kullanici acisindan "hata" olabilir, o baska mevzu.
Öncelikle teşekkür ederim.

Evet 0 count olmasi durumu bir hata değil zaten bende oradaki algoritmada sorun yapmıştım asıl onu sormak istemiştim.

Yardım edenlere teşekkür ederim.
Çözüm:

Kod:
try{
row_count = stmt.execute() // check email
if(row_count == 0) // email yok
// email yoksa ne yapiyorsan buraya, hata degil bu
else
// varsa buraya
}catch e:
// hata burada
 

Geri
Yukarı