Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

extensão da classe PDO


$dsn é o nome da fonte de dados. Ele lida com seu nome de host para você. Você usa assim:
$dsn = 'mysql:dbname=YOUR_DB_NAME;host=YOUR_HOSTNAME'

Com a linha $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Você definiu exceções para serem levantadas quando ocorrem erros (o que eu gosto), então em sua classe estendida você pode manipular erros em manipuladores de exceção. Se você tivesse um método chamado getAssoc em sua classe PDO estendida, ficaria assim:
/// 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);
   }
}