Model_pdo.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * MINZ - Copyright 2011 Marien Fressinaud
  4. * Sous licence AGPL3 <http://www.gnu.org/licenses/>
  5. */
  6. /**
  7. * La classe Model_sql représente le modèle interragissant avec les bases de données
  8. * Seul la connexion MySQL est prise en charge pour le moment
  9. */
  10. class Model_pdo {
  11. /**
  12. * $bd variable représentant la base de données
  13. */
  14. protected $bd;
  15. protected $prefix;
  16. /**
  17. * Créé la connexion à la base de données à l'aide des variables
  18. * HOST, BASE, USER et PASS définies dans le fichier de configuration
  19. */
  20. public function __construct () {
  21. $db = Configuration::dataBase ();
  22. $driver_options = null;
  23. try {
  24. $type = $db['type'];
  25. if($type == 'mysql') {
  26. $string = $type
  27. . ':host=' . $db['host']
  28. . ';dbname=' . $db['base']
  29. . ';charset=utf8';
  30. $driver_options = array(
  31. PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
  32. );
  33. } elseif($type == 'sqlite') {
  34. $string = $type
  35. . ':/' . PUBLIC_PATH
  36. . '/data/' . $db['base'] . '.sqlite'; //TODO: DEBUG UTF-8 http://www.siteduzero.com/forum/sujet/sqlite-connexion-utf-8-18797
  37. }
  38. $this->bd = new PDO (
  39. $string,
  40. $db['user'],
  41. $db['password'],
  42. $driver_options
  43. );
  44. $this->prefix = $db['prefix'];
  45. } catch (Exception $e) {
  46. throw new PDOConnectionException (
  47. $string,
  48. $db['user'], MinzException::WARNING
  49. );
  50. }
  51. }
  52. }