2012-02-24 2 views
0

J'ai une classe de base de données PDO, je suis un peu nouveau sur PDO, donc je ne sais pas comment je ferais pour retourner les erreurs afin que je puisse déboguer si quelque chose ne va pas. Je veux juste connaître les meilleures méthodes d'aller chercher des erreurs et les renvoyer à la demande. Voici ma classe de base de données:Classe de base de données PDO, renvoyer des erreurs

class database { 

private $dbh; 
private $stmt; 

public function __construct($user, $pass, $dbname) { 
    $this->dbh = new PDO(
     "mysql:host=localhost;dbname=$dbname", 
     $user, 
     $pass, 
     array(PDO::ATTR_PERSISTENT => true) 
    ); 

} 

public function query($query) { 
    $this->stmt = $this->dbh->prepare($query); 
    return $this; 
} 

public function bind($pos, $value, $type = null) { 

if(is_null($type)) { 
     switch(true) { 
      case is_int($value): 
       $type = PDO::PARAM_INT; 
       break; 
      case is_bool($value): 
       $type = PDO::PARAM_BOOL; 
       break; 
      case is_null($value): 
       $type = PDO::PARAM_NULL; 
       break; 
      default: 
       $type = PDO::PARAM_STR; 
     } 
    } 

    $this->stmt->bindValue($pos, $value, $type); 
    return $this; 
} 

public function execute() { 
    return $this->stmt->execute(); 
} 

public function resultset() { 
    $this->execute(); 
    return $this->stmt->fetchAll(); 
} 

public function single() { 
    $this->execute(); 
    return $this->stmt->fetch(); 
    } 
} 

Merci

+2

Relatif: http://stackoverflow.com/questions/3726505/how-to-squeeze-error-message-out-of-pdo –

+0

passez par le lien posté par pekka, il a la réponse –

Répondre

1

Vous pouvez attraper erreur dans votre "code client". Utilisez try/catch blocks dans chaque appel qui implique des méthodes "execute" ou "query". Ensuite, vous pouvez diriger votre application comme vous le souhaitez chaque fois qu'une erreur survient.

+0

Merci, à la fois vous et Pekka a aidé. –

Questions connexes