PHP: MySQL hata kanca?

2 Cevap php

PHP ve MySQL ile bir web uygulaması geliştirme oldum. Geçen gün, veritabanında bazı değişiklikler yapılmış ve yeni masa düzeni değil, başka bir sayfa için bir sayfa uyarlanmış. Ben yeterince iyi sınav vermedi, böylece site başka bir sayfaya hala hata ile çevrimiçi gitti. Basit bir MySQL hata oldu, ve benim co-işçi kimse lekeli bir kez, basit bir düzeltme oldu.

Şimdi bu gerçekleşti ki, ben diğer MySQL hataları yakalamak nasıl bilmek istiyorum. Ben bildirim sistemi çeşit düşünüyordum bir mysql_query () başarısız olduğunda, o bana bir e-posta göndermek istiyorsunuz.

Ben hata oluştu sonrasına kadar haberdar olmaz, ama kim bilir ne-diğer pek çok insan çalıştırmak sonra, en azından ben söyle doğrusu benim co-işçi daha, hemen gelip haberdar olurdu ki, tabii, anlıyorum aynı ölümcül hata içine.

Is there some sort of way to put in a hook, so that PHP automatically runs a function when an error happens? Or do I need to go through my code and add this functionality to every location where I use mysql_query()?

Ikincisi ise, gelecekte böyle bir şey nasıl önlenebileceği konusunda herhangi bir önerileri var mı? Bu durumda muhtemelen soyut SQL işlemleri için bir sınıf oluşturacağız. Ben bu bütün zaman yapıyor gerektiğini biliyorum ... Ama ben bu yüzden, en azından ben doğru birçok şey yapıyorum, farklı dosyaları içeren fonksiyonların benim setleri düzenlemek etmedi. Değil mi?

2 Cevap

Böyle bir sargı işlevini kullanabilirsiniz:

function mysql_query_wrapper($query, $link=null)
{
    if (is_null($link)) {
        $result = myql_query($query);
    } else {
        $result = myql_query($query, $link);
    }
    if (mysql_error($result)) {
        // error occurred
    }
    return $result;
}

Sonra sadece mysql_query mysql_query_wrapper ile çağırırsanız değiştirmeniz gerekir.