1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| <?php
class bdd extends PDO
{
final public function __construct($dsn, $username = '', $password = '', $driverOptions = array())
{
$driverOptions += array(self::ATTR_ERRMODE => self::ERRMODE_EXCEPTION,
self::ATTR_STATEMENT_CLASS => array('Statement'));
parent::__construct($dsn, $username, $password, $driverOptions);
}
}
class Statement extends PDOStatement
{
}
abstract class _mysqlPdo
{
public function result($array)
{
return $array;
}
protected function connect()
{
try {
$dbh = new bdd('mysql:host=localhost;dbname=mabdd', 'root','motdepasse');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
throw new Exception("Error occured while saving your object", null, $e);
}
return $dbh;
}
private function _bindParam($sth,$array){
}
private function _prepare(){
}
private function _execute(){
}
protected function _query($query,$array )
{
$id=0;
$dbh = $this->connect();
if($query==='' || $query===$this->curentQuery ){
$sth = $this->curentQuery;
}else{
$sth = $dbh->prepare($query);
$this->curentQuery = $sth;
}
if(!empty($array)){
foreach($array as $key =>$v ){
$sth->bindValue( ':'.$key ,$v);
}
}
try {
$sth->execute();
if(substr_count($sth->queryString,'SELECT')>0)
{
return $this->result($sth->fetchAll(PDO::FETCH_CLASS,'mysqlPdo'));
}
else{
return true;
}
}
catch (PDOException $e) {
JUSC_Exception::message( $e->getMessage());
}
}
abstract public function query($query,$array );
}
class mysqlPdo extends _mysqlPdo
{
public function query($query,$array )
{
return $this->_query($query,$array );
}
}
?> |
Partager