CruellaDeVille Skrevet 4. mai 2016 Del Skrevet 4. mai 2016 Jeg har lagt om alle sql-statements til prepared statements og neste skritt er errorhandling. Fra Java i gamledager hadde vi try catch, og det finnes visstnok i php også, og jeg ser at i samhandling med databasen er det massevis av steder ting kan gå galt. Men - jeg finner ingen gode og forståelige eksempler på hvordan try catch kan brukes i php, så derfor spør jeg om hjelp. Her er en konkret metode fra min query_class: Kan noen bidra med en try/catch og en forklaring? public function getExamById($id){ $table = $this->config['debug']['mode'] ==1 ? 'eks2_exam': 'tmp_exam'; $table="tmp_exam"; $query = "select coursecode, title, filename, filetype, filesize, year, semester, departmentcode from {$table} where eid=?"; $this->stm = $this->database->connection->prepare($query); $this->stm->bind_param("i", $id); $this->stm->execute(); $this->stm->bind_result($coursecode, $title, $filename, $filetype, $filesize, $year, $semester, $department); $res = array(); while ($row = $this->stm->fetch()){ #public function __construct($c, $f, $ft, $year){ $e = new Exam($coursecode, $title, $filename, $filetype); $e->set('filesize', $filesize); $e->setFilesize(); $e->set('year', $year); $e->set('semester', $semester); $e->set('department', $department); $e->set('id', $id); } return $e; } Lenke til kommentar
Crowly Skrevet 5. mai 2016 Del Skrevet 5. mai 2016 (endret) Det kommer litt an på hvor du legger try/catch'en, når ett exception kastes(?) så er det den første catchen med rett exception type som vil fange den opp, den forplanter/propergates hele veien opp til det finnes ett catch statement. Du trenger ikke å definere noe i metodene som i java, f.eks public object getExamById() throws PDOExceptions {} Denne vil "fange" både PDOExceptions og Exceptions try { // annen kode $result = $query->getExamById(1); // mer kode } catch (PDOException $e) { $pdoError = $e->getMessage(); } catch (Exception $e) { $error = $e->getMessage(); } // kode try { // kode try { // kode if ($test) { throw new ExampleException1('Hello'); } // kode if ($test2) { throw new ExampleException2('World'); } // kode } catch(ExampleException1 $e) { echo $e->getMessage(); // Hello } // kode } catch(ExampleExcpetion2 $e) { echo $e->getMessage(); // World } http://php.net/manual/en/language.exceptions.php Endret 5. mai 2016 av Crowly Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå