Yargılamak için nasıl bir işlem başarılı veya başarısız olup olmadığını?

3 Cevap php

Ben MySQL ve PHP kullanıyorum.

Bu işlem Koşu:

begin;
....
commit;

Nasıl PHP başarısız yargılamaya gerekir?

3 Cevap

Sonucu kontrol (mysql_query, PHP Manual):

SELECT, SHOW, tanımlamak, açıklamak ve resultset dönen diğer ifadeler için, mysql_query () başarı bir kaynak verir, hata veya FALSE.

SQL ifadeleri, INSERT, UPDATE, DELETE, BIRAKMA, vb, mysql_query () diğer tür başarı veya hata FALSE TRUE döndürür için.

Örnek (PHP4-style): EDIT: johannes yorumuna başına Geliştirilmiş örneği

mysql_connect("localhost", "username", "password") or die( mysql_error() );

mysql_select_db("test") or die(mysql_error());

$query = "INSERT INTO ..."; //Query here

mysql_query("BEGIN"); // transaction begins

$result = mysql_query($query);

if(!$result)
{
    mysql_query("ROLLBACK"); //Transaction rolls back
    echo "Rolled Back.";
    exit;
}
else 
{
    $committed = mysql_query("COMMIT"); //Commit Transaction
    if(!$committed)
    {
        //Commit Failed, take appropriate action
    }
    else
    {
        echo "Successful Insert.";
    }
}

Yoksa, PDO kullanım için, http://stackoverflow.com/questions/272203/pdo-try-catch-usage-in-functions SEE

Eğer denemek ve bir tek duff sorgu yürütmek gibi işlem aynı başarısız olursa genel bir hata veritabanından iade edilmesi için bekleyebilirsiniz.

Tüm MySQL tablo türleri işlemlerini desteklemediğini unutmayın.

Her idam SQL sonra, DB hata iade etmediğini kontrol edin. http://www.php.net/manual/en/function.mysql-errno.php hataları denetlemek için kullanın.

DB herhangi bir noktada hata döndürebilir ve her SQL her zaman zaten kontrol edilmelidir ...