Flash: PDO Unklarheiten

Beitrag lesen

Hallo Leute, ich beschäftige mich seit kurzem mit der PDO Klasse und finde sie eigentlich recht toll es funktioniert auch schon fast alles damit.
Leider habe ich ein paar Fragen bezüglich dieser Klasse die mit Google leider nicht beantworten konnte.

Zurste habe ich meine eigene Klasse erstellt:

  
class ePDO extends PDO  
{  
    public function __construct($host, $database, $user, $password)  
    {  
        parent::__construct('mysql:host=' . $host .';dbname='. $database . '', $user, $password);  
  
        $this->setAttribute(PDO::ATTR_PERSISTENT, true);  
        $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);  
        $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    }  
}  

Sie dient mir rein dazu um die Einstellungen von PDO zu setzen.

Nun habe ich 2 Codes:
(Datenbankverbindung wurde bereits geöffnet) $this->ePdo = new ePDO(

  
$sql = 'select fisch from Meer';  
try {  
  $records = $this->ePdo->query($sql)->fetchAll();  
}  
catch (PDOException $e) {  
  print "Error!: " . $e->getMessage() . "<br/>";  
  die();  
}  
  
print_r($records);  

und mit prepare:

  
$sql = 'select fisch from Meer';  
try {  
  $SelStmt = $this->ePdo->prepare($sql);  
  
  $SelStmt->execute();  
  $records = $SelStmt->fetchAll();  
  $SelStmt->closeCursor();  
}  
catch (PDOException $e) {  
  print "Error!: " . $e->getMessage() . "<br/>";  
  die();  
}  

Nun meine Fragen:

1.) Macht es Sinn überall einen Try Catch Block zu verwenden? Auch bei query Abfragen?
2.) Wenn ich einen Fehler einbaue z.B 'selectttt fisch from Meer' dann bekomme ich keinen Fehler ausgegeben, aber der catch Block wird aufgerufen, warum?
3.) Hat die query Abfrage irgendwelche Nachteile gegenüber der prepare abfrage? Welche Abfrage macht mehr Sinn? (Im Einfachen Modus, wo nichts übergeben wird) Ich hab mal gehört das fehler nur im Prepare Modus geworfen werden.
4.) Macht es Sinn eine eigene Pdo Klasse zu machen wie ich es gemacht hab, oder geht das einfacher mit den Einstellungen?
5.) $SelStmt->closeCursor(); muss man den immer am Ende schließen, auch bei query Abfragen?
6.) $this->setAttribute(PDO::ATTR_PERSISTENT, true); was brint die Einstellung, immer steht in Google die soll man machen.
7.) Wenn ich eine Varibale einbinde mit:
$UpdStmt->bindParam(':pBetrag', $Betrag, PDO::PARAM_INT);
Hier nehme ich INT, aber int sind doch nur ganze Zahlen, was mache ich bei Kommastellen oder ganz großen Beträgen? Double gibt es ja nicht.

Dann waren somit mal meine Fragen und bedanke mich schon mal im Vorhinein auf die Antworten.

lg Flash