$dsn est le nom de la source de données. Il gère votre nom d'hôte pour vous. Vous l'utilisez comme ceci :
$dsn = 'mysql:dbname=YOUR_DB_NAME;host=YOUR_HOSTNAME'
Avec la ligne $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Vous avez défini des exceptions à déclencher lorsque des erreurs se produisent (ce que j'aime), donc dans votre classe étendue, vous pouvez gérer les erreurs dans les gestionnaires d'exceptions. Si vous aviez une méthode appelée getAssoc dans votre classe PDO étendue, elle ressemblerait à ceci :
/// Get an associative array of results for the sql.
public function getAssoc($sql, $params=array())
{
try
{
$stmt = $this->prepare($sql);
$params = is_array($params) ? $params : array($params);
$stmt->execute($params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
catch (Exception $e)
{
// Echo the error or Re-throw it to catch it higher up where you have more
// information on where it occurred in your program.
// e.g echo 'Error: ' . $e->getMessage();
throw new Exception(
__METHOD__ . 'Exception Raised for sql: ' . var_export($sql, true) .
' Params: ' . var_export($params, true) .
' Error_Info: ' . var_export($this->errorInfo(), true),
0,
$e);
}
}