Autorius Tema: MySQL klaidų atvaizdavimas  (Skaityta 366 kartus)

Neprisijungęs zmak

  • Naujokas
  • *
  • Įrašai: 177
  • Karma: +1/-0
    • Žiūrėti profilį
MySQL klaidų atvaizdavimas
« Įrašytas: 2013-01-03 22:45:44 pm »
Sveiki, na prie šitos temos grįžtu jau antrą kartą...
Norėčiau padaryti taip, kad nustatymų faile, nustatai kaip bus atvaizduojami mysql error, tarkim kažkokiam kintamajam priskiri, ir vėliau rašydamas mysql_query or die(); vartotum tą kintamąjį, taip jeigu reikalui esant reiktų pakeisti visu query klaidų atvaizdavimą tai galėtum padaryti vienoje vietoje. Bandžiau sukurti tokį kintamąjį:
$ms_error = '<br />File:'.__FILE__.'<br />Line: '.__LINE__;ir naudoti taip:
mysql_query("***") or die (mysql_error().$ms_error);Bet jeigu būna klaida, tai išspausdina tą failą, ir tą eilutę kur yra sukuriamas "$ms_error" kintamasis, o ne kur yra pats query.

Neprisijungęs vitalikaz

  • Dalyvis
  • **
  • Įrašai: 895
  • Karma: +59/-2
  • Tikėk kuo tiki
    • Žiūrėti profilį
    • blast.lt
Ats: MySQL klaidų atvaizdavimas
« Atsakymas #1 Įrašytas: 2013-01-04 10:17:52 am »
Tai teisingai. Tu juk išvedi tuos FILE ir LINE jau tame faile kur aprašai kintamąjį, ir jie pasidaro įhardcodinti. Panaudok geriau kokią funkciją. Jeigu pas tave yra globalus ir tik vienas mysql connection'as, tai gali padaryti pavyzdžiui kad ir taip:
// 1failas.php
<?php
  
function print_qerror($error) {
    
printf("<strong>MySQL query error</strong>: %d<br />\n<strong>Backtrace</strong>:<br />\n"$error);
    
debug_print_backtrace();
  }


// 2 failas:
[kvieti sqlą] or die(print_qerror(mysql_error()));
?>


Tokiem dalykams geriau naudok funkcija debug_print_backtrace(), tada matysi visą kvietimo eiliškumą. O jeigu ir šituos dalykus nori kažkaip savaip išvest, tai naudok debug_backtrace(), kuris tau gražins masyvą su visais tais duomenimis. Ir dar kartą...
NENAUDOKIT MYSQL_* FUNKCIJŲ
Sėkmės.
BlaST
Serveriai.lt paslaugos su 50% nuolaida!
Blast.lt blogas

Neprisijungęs zmak

  • Naujokas
  • *
  • Įrašai: 177
  • Karma: +1/-0
    • Žiūrėti profilį
Ats: MySQL klaidų atvaizdavimas
« Atsakymas #2 Įrašytas: 2013-01-04 13:38:16 pm »
Ačiū, viskas veikia gerai :)

P.S. kaip suprasti, nenaudokite mysql_*? tai ką vietoj jų naudot?

Neprisijungęs justinas

  • Naujokas
  • *
  • Įrašai: 163
  • Karma: +16/-3
    • Žiūrėti profilį
Ats: MySQL klaidų atvaizdavimas
« Atsakymas #3 Įrašytas: 2013-01-04 14:15:19 pm »
Ačiū, viskas veikia gerai :)

P.S. kaip suprasti, nenaudokite mysql_*? tai ką vietoj jų naudot?

Geriausia – PDO http://php.net/manual/en/mysqlinfo.api.choosing.php . Bent normalus argumentų bindinimas yra! Turbūt nežiūrėjai, pastaruoju metu netgi prie visų mysql_ funkcijų php.net rašo, kad pasenusi API ir bus šalinama. Kaip ir prie md5, sha rašo, kad netinka slaptažodžiams hešinti :)

Manualai.lt Forumas

Ats: MySQL klaidų atvaizdavimas
« Atsakymas #3 Įrašytas: 2013-01-04 14:15:19 pm »