sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder try-catch block för PDO

Inget av svaren här är fel. Men faktiskt alla tre tillsammans är det verkliga svaret. Du bör definitivt ställa in

$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

som sagt av Cerad .

Från och med nu kastas varje enskild fråga om allt angående databas via undantag av typen PDOException . Du behöver bara inte kasta din egen Exception som sagt av ladar för det är värdelöst. Ta bara ladaren kod och konvertera den till

 ...
 $data = array();
 $model = new BlogModel;

    try{
      $model->save(2,'test');
      $data['result']['message'] = 'Settings saved';
      $data['result']['status'] = 'success';
    }catch(PDOException $e){
        $data['result']['message'] = 'Could not save the settings';
        $data['result']['status'] = 'error';
    }

Och kasta INTE något själv.

Ett mycket trevligt sätt att felsöka PDO-frågor är att använda catch-skriptet länkat av Basic som du kan hitta här än en gång.

Genom att kombinera dessa saker får du ett flexibelt, rent och lättfelsökt sätt att fånga upp alla fel som kan komma.



  1. Hur man tar bort dubbletter i SQL-tabell baserat på flera fält

  2. Komma igång med GearHost för SQL Server Database Development

  3. Finns det en bästa praxis/sammanhängande sätt att uppdatera ett databasfält som innehåller ett hashnyckel-värdelager?

  4. Söker på uttrycksindex