Line 15... |
Line 15... |
15 |
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
|
15 |
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
|
16 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
16 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
17 |
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
|
17 |
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
|
18 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
18 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
19 |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
|
19 |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
|
20 |
* @version $Id: Bdd.php 238 2010-11-24 17:53:29Z jpm $
|
20 |
* @version $Id: Bdd.php 239 2010-11-25 18:04:00Z jpm $
|
21 |
* @link /doc/framework/
|
21 |
* @link /doc/framework/
|
22 |
*/
|
22 |
*/
|
23 |
class Bdd {
|
23 |
class Bdd {
|
24 |
/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
|
24 |
/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
|
25 |
const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
|
25 |
const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
|
Line 177... |
Line 177... |
177 |
}
|
177 |
}
|
178 |
}
|
178 |
}
|
179 |
}
|
179 |
}
|
Line 180... |
Line 180... |
180 |
|
180 |
|
- |
|
181 |
/**
|
- |
|
182 |
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see requeter
|
- |
|
183 |
*/
|
- |
|
184 |
final protected function requete($requete) {
|
- |
|
185 |
return $this->requeter($requete, $mode);
|
- |
|
186 |
}
|
- |
|
187 |
|
181 |
/**
|
188 |
/**
|
182 |
* Execute une requête et retourne le résultat tel que renvoyé par l'abstraction courante.
|
189 |
* Execute une requête et retourne le résultat tel que renvoyé par l'abstraction courante.
|
183 |
*
|
190 |
*
|
184 |
* @param string la requête à effectuer
|
191 |
* @param string la requête à effectuer
|
185 |
* @return mixed un objet contenant le résultat de la requête
|
192 |
* @return mixed un objet contenant le résultat de la requête
|
186 |
*/
|
193 |
*/
|
187 |
public function requete($requete) {
|
194 |
public function requeter($requete) {
|
Line 188... |
Line 195... |
188 |
$this->connecter();
|
195 |
$this->connecter();
|
189 |
|
196 |
|
190 |
$retour = null;
|
197 |
$retour = null;
|
Line 207... |
Line 214... |
207 |
$retour = $this->connexion->exec($requete);
|
214 |
$retour = $this->connexion->exec($requete);
|
208 |
break;
|
215 |
break;
|
209 |
}
|
216 |
}
|
210 |
return $retour;
|
217 |
return $retour;
|
211 |
}
|
218 |
}
|
212 |
|
219 |
|
- |
|
220 |
/**
|
- |
|
221 |
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recuperer
|
- |
|
222 |
*/
|
- |
|
223 |
final protected function requeteUn($requete, $mode = self::MODE_ASSOC) {
|
- |
|
224 |
return $this->recuperer($requete, $mode);
|
- |
|
225 |
}
|
- |
|
226 |
|
213 |
/**
|
227 |
/**
|
214 |
* Execute une requête et retourne le premier résultat sous forme de tableau (par défaut) ou d'objet.
|
228 |
* Execute une requête et retourne le premier résultat sous forme de tableau (par défaut) ou d'objet.
|
215 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau ou aux noms des attributs de l'objet.
|
229 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau ou aux noms des attributs de l'objet.
|
216 |
*
|
230 |
*
|
217 |
* @param string la requête à effectuer
|
231 |
* @param string la requête à effectuer
|
218 |
* @param string le mode de retour ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
232 |
* @param string le mode de retour ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
219 |
* @return mixed un objet ou un tableau contenant le résultat de la requête
|
233 |
* @return mixed un objet ou un tableau contenant le résultat de la requête
|
220 |
*/
|
234 |
*/
|
221 |
public function requeteUn($requete, $mode = self::MODE_ASSOC) {
|
235 |
public function recuperer($requete, $mode = self::MODE_ASSOC) {
|
222 |
$this->connecter();
|
236 |
$this->connecter();
|
Line 223... |
Line 237... |
223 |
|
237 |
|
224 |
$retour = null;
|
238 |
$retour = null;
|
225 |
switch ($this->abstraction) {
|
239 |
switch ($this->abstraction) {
|
Line 246... |
Line 260... |
246 |
$retour = $this->connexion->querySingle($requete);
|
260 |
$retour = $this->connexion->querySingle($requete);
|
247 |
break;
|
261 |
break;
|
248 |
}
|
262 |
}
|
249 |
return $retour;
|
263 |
return $retour;
|
250 |
}
|
264 |
}
|
251 |
|
265 |
|
- |
|
266 |
/**
|
- |
|
267 |
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recupererTous
|
- |
|
268 |
*/
|
- |
|
269 |
final protected function requeteTous($requete, $mode = self::MODE_ASSOC) {
|
- |
|
270 |
return $this->recupererTous($requete, $mode);
|
- |
|
271 |
}
|
- |
|
272 |
|
252 |
/**
|
273 |
/**
|
253 |
* Execute une requête et retourne un tableau de résultats. Un résultat peut être présentés sous forme
|
274 |
* Execute une requête et retourne un tableau de résultats. Un résultat peut être présentés sous forme
|
254 |
* de tableau (par défaut) ou d'objet.
|
275 |
* de tableau (par défaut) ou d'objet.
|
255 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau résultat ou
|
276 |
* Les noms des champs de la base de données correspondent aux noms des clés du tableau résultat ou
|
256 |
* aux noms des attributs de l'objet résultat.
|
277 |
* aux noms des attributs de l'objet résultat.
|
257 |
*
|
278 |
*
|
258 |
* @param string la requête à effectuer
|
279 |
* @param string la requête à effectuer
|
259 |
* @param string le mode de retour des résultats : ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
280 |
* @param string le mode de retour des résultats : ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
|
260 |
* @return array un tableau contenant les résultats sous forme d'objets ou de tableau (par défaut).
|
281 |
* @return array un tableau contenant les résultats sous forme d'objets ou de tableau (par défaut).
|
261 |
*/
|
282 |
*/
|
262 |
public function requeteTous($requete, $mode = self::MODE_ASSOC) {
|
283 |
public function recupererTous($requete, $mode = self::MODE_ASSOC) {
|
263 |
$this->connecter();
|
284 |
$this->connecter();
|
264 |
|
285 |
|
265 |
$retour = null;
|
286 |
$retour = null;
|
266 |
switch ($this->abstraction) {
|
287 |
switch ($this->abstraction) {
|
267 |
case self::ABSTRACTION_PDO :
|
288 |
case self::ABSTRACTION_PDO :
|
268 |
try {
|
289 |
try {
|
269 |
$resultat = $this->connexion->query($requete);
|
290 |
$resultat = $this->connexion->query($requete);
|
Line 334... |
Line 355... |
334 |
}
|
355 |
}
|
335 |
return $retour;
|
356 |
return $retour;
|
336 |
}
|
357 |
}
|
Line 337... |
Line 358... |
337 |
|
358 |
|
- |
|
359 |
/**
|
- |
|
360 |
* Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment, dans
|
- |
|
361 |
* le cas de PDO, du driver utilisé. Les méthodes utilisées pour retourner l'identifiant peuvent avoir des comportements
|
- |
|
362 |
* différent. Consulter la documentation PHP correspondant à l'abstraction choisie avant de l'utiliser :
|
- |
|
363 |
* @link(http://fr.php.net/manual/fr/pdo.lastinsertid.php, PDO::lastInsertId([ string $name = NULL ]))
|
- |
|
364 |
* @link(http://php.net/manual/en/mysqli.insert-id.php, mysqli->insert_id())
|
- |
|
365 |
* @link(http://fr.php.net/manual/fr/function.mysql-insert-id.php, mysql_insert_id())
|
- |
|
366 |
* @link(http://fr.php.net/manual/fr/sqlite3.lastinsertrowid.php, SQLite3::lastInsertRowID())
|
- |
|
367 |
* @param mixed un paramètre éventuel à transmettre (en fonction de l'abstraction de BDD utilisée).
|
- |
|
368 |
* @return mixed le dernier identifiant de clé primaire ajouté dans la base de données (string ou int).
|
- |
|
369 |
*/
|
- |
|
370 |
public function recupererIdDernierAjout($parametres = null) {
|
- |
|
371 |
$this->connecter();
|
- |
|
372 |
|
- |
|
373 |
$retour = $chaine;
|
- |
|
374 |
switch ($this->abstraction) {
|
- |
|
375 |
case self::ABSTRACTION_PDO :
|
- |
|
376 |
$retour = $this->connexion->lastInsertId($parametres);
|
- |
|
377 |
break;
|
- |
|
378 |
case self::ABSTRACTION_MYSQL :
|
- |
|
379 |
$retour = mysql_insert_id($this->connexion);
|
- |
|
380 |
break;
|
- |
|
381 |
case self::ABSTRACTION_MYSQLI :
|
- |
|
382 |
$retour = $this->connexion->insert_id();
|
- |
|
383 |
break;
|
- |
|
384 |
case self::ABSTRACTION_SQLITE3 :
|
- |
|
385 |
$retour = $this->connexion->lastInsertRowID();
|
- |
|
386 |
break;
|
- |
|
387 |
}
|
- |
|
388 |
return $retour;
|
- |
|
389 |
}
|
- |
|
390 |
|
338 |
/**
|
391 |
/**
|
339 |
* Destructeur de classe, se contente de fermer explicitement la connexion à la base de donnée.
|
392 |
* Destructeur de classe, se contente de fermer explicitement la connexion à la base de donnée.
|
340 |
*/
|
393 |
*/
|
341 |
protected function __destruct() {
|
394 |
protected function __destruct() {
|
342 |
switch ($this->abstraction) {
|
395 |
switch ($this->abstraction) {
|