Topic: Mysql uzklausos pranesimo tikslinimas

Taigi gavosi taip kad sukurta tvs be tikslios uzklausos klaidos pranesimo.. t.y. jei yra kokia klaida uzklausoje ekrane pasirodys tik pranesimas kad kazkas negerai, bet nera parasyta kur negerai t.y. kokiam faile ir kokioje eiluteje. ka galitetumete pasiulyti sioje situacijoje, kad neuzsizaisti su viso kodo perziurejimu? Gal eina kaip nors gudriai issisukti is sios situacijos?

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Mysql uzklausos pranesimo tikslinimas

žiūrint kokios aplinkybės:

pvz.: jeigu visos užklausos yra eina per vieną funkciją/metodą (wrapper'į), tai jame gali pradėti debuginti - pilną klaidos pranešimą kažkur užsisaugot, ar rodyt tik dedikuotiems IP ar dar kaip nors;

Re: Mysql uzklausos pranesimo tikslinimas

Tai va kad neina per viena funkcija, kiekviena uzklausa turi savo mysql error reporta. bet ji nenurodo is kur klaida pareina.

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Mysql uzklausos pranesimo tikslinimas

Tai sukurk funkciją/metodą, ir visas atskiras funkcijas nukreipk į naujai sukurtą, tada joje jau galėsi gaudyt.

Parodyk kaip atrodo dabartinė užklausos vykdymo ir klaidos apdorojimo struktūra.

Re: Mysql uzklausos pranesimo tikslinimas

paprastai prie kiekvienos uzklausos or die mysql_error()

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Mysql uzklausos pranesimo tikslinimas

pacyzdziui tycia nurodziau klaudinga info uzklausoje ir gaunu klaida:
Unknown column 's' in 'where clause'

is sios info neina suprasti is kur parejo klaida nei failo pavadinimo nei eilutes numerio..
gal yra koks triukas ijungiant php/mysql konfiguracijoje kad rodytu detaliau visas klaidas?

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Mysql uzklausos pranesimo tikslinimas

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

Re: Mysql uzklausos pranesimo tikslinimas

There is protection against session theft. If the session created with chrome and firefox Online - something really wrong.

Pass your NS0-155 and C_HANASUP_1 in first try by using our pass-4sure dumps