class pdo en fille
Posté : 18 avr. 2008, 14:57
Bonjour,
je me suis fait ma classe pdo(); qui fonctionne mais pas par héritage, et je préferai, quoi qu'il en soit donnez moi votre avis en vue de l'amélioré.
Merci
PS: j'ai ajouté une gestion d'erreur qui envoie le message d'erreur par e-mail, rentrons dans le vif du sujet.
class pdo
je me suis fait ma classe pdo(); qui fonctionne mais pas par héritage, et je préferai, quoi qu'il en soit donnez moi votre avis en vue de l'amélioré.
Merci
PS: j'ai ajouté une gestion d'erreur qui envoie le message d'erreur par e-mail, rentrons dans le vif du sujet.
class pdo
<?php
require_once('message.class.php');
class Connection
{
private $db = 'boutique'; // base de données
private $host = 'localhost'; // adresse de la base
private $user = 'root'; // nom
private $pwd = ''; // mot de passe
//private $pwd = 'tiensTiens'; // mot de passe
private $con; //
private $select; // requette de séléction
private $execute; // requette d'execution
public function __construct()
{
try
{
$dsn = "mysql:dbname=$this->db;host=$this->host";
$this->con = new PDO($dsn, $this->user, $this->pwd);
}
catch (PDOException $e)
{
//On indique par email qu'on n'a plus de connection disponible
error_log(date('D/m/y').' à '.date("H:i:s").' : '.$e->getMessage(), 1, '[email protected]');
$message= new Message();
$message->outPut('Erreur 500', 'Serveur de BDD indisponible, nous nous excusons de la gêne occasionnée');
}
return $this->con;
}
public function select($reqSelect)
{
$result = $this->con->query($reqSelect);
return $result;
}
public function execute($reqExecution)
{
$result = $this->con->exec($reqExecution);
return $result;
}
}
/*
$Connec = new Connection();
$result = $Connec->select("select * FROM personne");
foreach ($result as $row)
{
echo $row['id'].'/ '.$row['nom'] . " - " . $row['prenom'] . "<br />";
}
$result = $Connec->execute("delete id FROM personne where id=2");*/
?>
message.class.php
<?php
class Message
{
private $messageHtml;
function __construct($as_file='./class/erreur.html')
{
//file_get_contents — Lit tout un fichier dans une chaîne
$this->messageHtml=file_get_contents($as_file);
}
public function exceptionHandler($exception)
{
Message::erreur('erreur inconnue', $exception->getMessage(), 'message.html');
}
public function outPut($titre, $message, $as_file=NULL)
{
// gestion des caractères spéciaux pour le titre et texte (affiche < == <)
$ls_msg=htmlentities($message);
$ls_titre=htmlentities($titre);
// remplace dans le message
$ls_sortie=str_replace('{MSG}', $ls_msg, $this->messageHtml);
$ls_sortie=str_replace('{TITRE}', $ls_titre, $ls_sortie);
// Affichage et arrêt du traitement
die($ls_sortie);
}
public static function erreur($exception, $message, $file)
{
$ls_titre=htmlentities('Erreur inconnue');
$ls_msg=htmlentities($message);
$ls_messageHtml=file_get_contents($file);
$ls_sortie=str_replace('{MSG}', $ls_msg, $this->messageHtml);
$ls_sortie=str_replace('{TITRE}', $ls_titre, $ls_sortie);
die($ls_sortie);
}
}
?>
erreur.html (template de sortie en cas d'erreur)
Code : Tout sélectionner
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD xhtml" xml:lang="fr">
<html>
<head>
<title>Ereur</title>
<link rel="stylesheet" type="text/css" media="all" href="*.css" />
</head>
<body>
<h1>{TITRE}</h1>
<h3>
<a href="http://<?php echo $_SERVER['HTTP_HOST'];?>">Cliquez ici pour retournez à la page d'accueil</a>
</h3>
<p class="">
{MSG}
</p>
</body>
</html>