Na "die mysql_error()" yra nieko gero... čia kalbant bendrai. Nes neparodomas puslapis ir pan. Taip pat mysql_error vartotojui nereikia matyti.
Vienas iš būdų, kaip jau rašiau yra pasigaminti savo funkcija, į kuri:
a) gali apdoroti mysql užklausas/orm, pvz.:
mysql_query($query) or die(mysql_error());
// keičiam į
my_db_handler($query);
// kur
function my_db_handler($query){
mysql_query($query) or my_logger($query, mysql_error());
}
b) gali tik klaidų apdorojimą perrašyti, būtų yra:
b1) vietoj die(mysql_error()) naudoti die(my_error_handler()); (greitas hackas nepažeidžiant kreivos sistemos architektūros);
b2) atsisakyti die() ir aplamai naidoti php error handlerį: http://php.net/manual/en/function.set-error-handler.php
b3) atsisakyti die() ir naudoti try/catch
Mano rekomendacija tai būtų visas mysql užklausas ir visas klaidas apdoroti per tam reikalui skirtas funkcijas/metodus - per vieną tašką, kuriame tu jau paskui galėsi turėti tau tinkamas konstrukcijas ir kryptis, kur nukreipti tikruosius klaidų panešimųs (system log, log file, db error table ar email);
Kalbant dar bendriau, kalbant apie kitas klaidas yra tokie naudingi dalykai:
1) __FILE__, __LINE__
2) http://php.net/manual/en/function.debug-backtrace.php