97,7 → 97,6 |
* @throws Exception une exception dans le cas ou là connexion échoue |
*/ |
final private function connecter() { |
|
switch ($this->abstraction) { |
case 'pdo': |
$this->connexion = new PDO($this->dsn, $this->utilisateur, $this->pass); |
105,7 → 104,7 |
|
case 'mysql': |
$this->connexion = mysql_connect($this->hote,$this->utilisateur,$this->pass); |
if($this->connexion != null) { |
if ($this->connexion != null) { |
mysql_select_db($this->bdd_nom, $this->connexion); |
} else { |
throw new Exception('Erreur de connexion à la base de données, vérifiez les paramètres du fichier de configuration'); |
114,7 → 113,7 |
|
case 'mysqli': |
$this->connexion = new mysqli($this->hote,$this->utilisateur,$this->pass, $this->bdd_nom); |
if(!$this->connexion) { |
if (!$this->connexion) { |
throw new Exception('Erreur de connexion à la base de données, vérifiez les paramètres du fichier de configuration'); |
return; |
} |
123,7 → 122,7 |
case 'sqlite3': |
// cas particulier de sqllite, on considère que le nom de la base de données correspond au fichier à ouvrir |
$this->connexion = new SQLite3($this->bdd_nom); |
if(!$this->connexion) { |
if (!$this->connexion) { |
throw new Exception('Erreur de connexion à la base de données, vérifiez les paramètres du fichier de configuration'); |
return; |
} |
133,13 → 132,13 |
$this->connexion = null; |
} |
|
if($this->encodage != null) { |
if ($this->encodage != null) { |
$this->requete("SET names '".$this->encodage."'"); |
} |
} |
|
/** |
* Fonction qui appelle la bonne fonction de requete suivant le type de bdd. |
* Fonction qui appelle la bonne fonction pour executer une requête suivant le type de bdd. |
* |
* @param string la requete à effectuer |
* @return PDOStatement un objet contenant le résultat de la requête |
155,19 → 154,16 |
switch ($this->abstraction) { |
case 'pdo': |
$retour = $this->connexion->query($requete); |
break; |
|
break; |
case 'mysql': |
$retour = mysql_query($requete,$this->connexion); |
break; |
|
break; |
case 'mysqli': |
$retour = $this->connexion->query($requete); |
break; |
|
break; |
case 'sqlite3': |
$retour = $this->connexion->exec($requete); |
break; |
break; |
} |
|
return $retour; |
174,35 → 170,30 |
} |
|
final protected function requeteUn($requete,$mode = 'ASSOC') { |
|
// on ne se connecte que lors du premier appel à une requete (lazy connexion) |
// Connection seulement lors du premier appel à une requete (lazy connexion) |
if ($this->connexion == null) { |
$this->connecter(); |
} |
|
$retour = null; |
|
switch ($this->abstraction) { |
case 'pdo': |
$res_req = $this->connexion->query($requete); |
$retour =$res_req->fetch($this->$mode); |
break; |
|
break; |
case 'mysql': |
$res = mysql_query($requete,$this->connexion); |
$fonction_fetch = $this->$mode; |
$retour = $fonction_fetch($res); |
break; |
|
break; |
case 'mysqli': |
$res = $this->connexion->query($requete); |
$fonction_fetch = $this->$mode; |
$retour = $res->$fonction_fetch(); |
break; |
|
break; |
case 'sqlite3': |
$retour = $this->connexion->querySingle($requete); |
break; |
break; |
} |
|
return $retour; |
210,8 → 201,7 |
|
|
final protected function requeteTous($requete,$mode = 'ASSOC') { |
|
// on ne se connecte que lors du premier appel à une requete (lazy connexion) |
// Connexion seulement lors du premier appel à une requete (lazy connexion) |
if ($this->connexion == null) { |
$this->connecter(); |
} |
221,43 → 211,42 |
switch ($this->abstraction) { |
case 'pdo': |
$res_req = $this->connexion->query($requete); |
$retour =$res_req->fetchAll($this->$mode); |
break; |
|
if ($res_req !== false) { |
$retour = $res_req->fetchAll($this->$mode); |
} else { |
$retour = false; |
} |
break; |
case 'mysql': |
$res = mysql_query($requete,$this->connexion); |
$res = mysql_query($requete, $this->connexion); |
$fonction_fetch = $this->$mode; |
while($ligne = $fonction_fetch($res)) { |
while ($ligne = $fonction_fetch($res)) { |
$retour[] = $ligne; |
} |
break; |
|
break; |
case 'mysqli': |
$res = $this->connexion->query($requete); |
$function_fetch = $this->$mode; |
while($ligne = $res->$function_fetch()) { |
while ($ligne = $res->$function_fetch()) { |
$retour[] = $ligne; |
} |
break; |
|
break; |
case 'sqlite3': |
$res = $this->connexion->query($requete); |
while($ligne = $res->fetch_array($this->ASSOC)) { |
if($mode == $this->ASSOC) { |
while ($ligne = $res->fetch_array($this->ASSOC)) { |
if ($mode == $this->ASSOC) { |
$retour[] = $ligne; |
} |
elseif($mode == $this->OBJECT){ |
} elseif ($mode == $this->OBJECT) { |
// cas particulier de sqllite |
// qui n'a pas de fonction fetch_object |
$ligneObjet = new stdClass(); |
foreach($ligne as $colonne => $valeur) { |
foreach ($ligne as $colonne => $valeur) { |
$ligneObjet->$colonne = $valeur; |
} |
$retour [] = $ligneObjet; |
$retour[] = $ligneObjet; |
} |
} |
break; |
|
break; |
} |
|
return $retour; |
278,19 → 267,16 |
switch ($this->abstraction) { |
case 'pdo': |
$retour = $this->connexion->quote($chaine); |
break; |
|
break; |
case 'mysql': |
$retour = '"'.mysql_real_escape_string($chaine, $this->connexion).'"'; |
break; |
|
break; |
case 'mysqli': |
$retour = '"'.$this->connexion->real_escape_string($chaine).'"'; |
break; |
|
break; |
case 'sqlite3': |
$retour = $this->connexion->escapeString($chaine); |
break; |
break; |
} |
|
return $retour; |
307,26 → 293,22 |
case 'pdo': |
$this->ASSOC = PDO::FETCH_ASSOC; |
$this->OBJECT = PDO::FETCH_CLASS; |
break; |
|
break; |
case 'mysql': |
$this->ASSOC = 'mysql_fetch_assoc'; |
$this->OBJECT = 'mysql_fetch_object'; |
break; |
|
break; |
case 'mysqli': |
$this->ASSOC = 'fetch_assoc'; |
$this->OBJECT = 'fetch_object'; |
break; |
|
break; |
case 'sqlite3': |
$this->ASSOC = 'SQLITE3_ASSOC'; |
$this->OBJECT = 'SQLITE3_OBJECT'; |
break; |
|
break; |
default: |
throw new Exception('Erreur : l\'abstraction '.$this->abstraction.' n\'est pas prise en charge'); |
break; |
break; |
} |
} |
|
337,19 → 319,16 |
switch ($this->abstraction) { |
case 'pdo': |
$this->connexion = null; |
break; |
|
break; |
case 'mysql': |
return mysql_close($this->connexion); |
break; |
|
break; |
case 'mysqli': |
$this->connexion->close(); |
break; |
|
break; |
case 'sqlite3': |
$this->connexion->close(); |
break; |
break; |
} |
} |
} |