$ dsn là tên nguồn dữ liệu. Nó xử lý tên máy chủ của bạn cho bạn. Bạn sử dụng nó như thế này:
$dsn = 'mysql:dbname=YOUR_DB_NAME;host=YOUR_HOSTNAME'
Với dòng $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Bạn đã đặt các ngoại lệ sẽ được nâng lên khi xảy ra lỗi (mà tôi thích), vì vậy trong lớp mở rộng của bạn, bạn có thể xử lý lỗi trong các trình xử lý ngoại lệ. Nếu bạn có một phương thức được gọi là getAssoc trong lớp PDO mở rộng của mình thì nó sẽ giống như sau:
/// 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);
}
}