sql sorgusu başarılı olup olmadığını test etmek gerekir

5 Cevap php

Ben bu sorgu var ve başarılı dönerse, ben değilse, bu işlevi işlemek yok, başka bir fonksiyon işlemek istiyorum.

İşte sorguyu çalıştırmak için kod

global $DB;
$DB->query("UPDATE exp_members SET group_id = '$group_id' WHERE member_id = '$member_id'");

Ben gibi bir şey olduğunu hayal edin ...

if($DB) { 
    //success 
} else { 
    //failure 
}

5 Cevap

Bu test verebilecek basit yoludur

$query = $DB->query("UPDATE exp_members SET group_id = '$group_id' WHERE member_id = '$member_id'");

if($query) // will return true if succefull else it will return false
{
// code here
}
global $DB;
$status = $DB->query("UPDATE exp_members SET group_id = '$group_id' WHERE member_id = '$member_id'");

if($status == false)
{ 
    die("Didn't Update"); 
}

Eğer ($DB->query() veritabanını sorgulamak için kullandığı ne olursa olsun) backend mysql_query kullanıyorsanız, o dönecektir bir TRUE veya FALSE için INSERT, UPDATE, ve DELETE (ve birkaç diğerleri), kendi durumuna göre komutlar.

mysq_affected_rows

Ben "başarılı" diyerek herhangi bir satır güncellenmiş olup olmadığını bilmek istiyorum anlıyorum. Bu fonksiyon ile kontrol edebilirsiniz.

Eğer PDO kullanıyorsanız -> http://www.php.net/manual/en/pdostatement.rowcount.php

0 değeri ise o zaman başarılı değildi, ama 1 sonra başarılı ise.

$this->db->affected_rows();
if ($DB->query(...)) { success }
else { failure }

(Eğer mysql_query kullanarak ya $ mysqli-> sorgu yapıyorsanız) sorgu başarısızlığı yanlış dönmelidir. UPDATE sorgusu aslında ("başarılı" den tamamen farklı bir şeydir) bir şey yaptım eğer test etmek istiyorsanız o mysql_affected_rows kullanmayın veya $ mysqli-> affected_rows