diff --git a/cms2/code/bdd.php b/cms2/code/bdd.php index c3865e7..0c99ce6 100644 --- a/cms2/code/bdd.php +++ b/cms2/code/bdd.php @@ -18,6 +18,80 @@ // le droit de voir. Filtrage après la requête (attention au LIMIT et OFFSET !) ? // ou y a-t-il moyen d'exprimer ça directement dans la requête ? + +class BDD { + private static $handle = null; + public static function get() { + if (self::$handle === null) { + self::$handle = @mysql_connect( + Config::get('db_hôte'), + Config::get('db_utilisateur'), + Config::get('db_mot_de_passe') + ); + if (!is_resource(self::$handle)) { + Debug::error("Échec à la connexion à la base de données"); + } + mysql_select_db(Config::get('db_base'), self::$handle) or Debug::sqlerror(); + self::init(); + } + return self::$handle; + } + + // ATTENTION : Ré-initialise toute la base de données !!! + public static function reset() { + self::unbuf_query('drop table if exists ' . self::table("pages")); + self::unbuf_query('drop table if exists ' . self::table("enfants")); + self::unbuf_query('drop table if exists ' . self::table("proprietes")); + self::init(); + } + + public static function init() { + self::unbuf_query('create table if not exists ' . self::table("pages") . ' (' + . 'uid_page integer auto_increment primary key' + . ')'); + self::unbuf_query('create table if not exists ' . self::table("enfants") . ' (' + . 'uid_page integer,' + . 'uid_page_parent integer,' + . 'groupe char(10)' + . ')'); + self::unbuf_query('create table if not exists ' . self::table("proprietes") . ' (' + . 'uid_prop integer,' + . 'uid_page integer,' + . 'systeme bool,' + . 'nom char(30),' + . 'valeur char' + .')'); + } + + public static function unbuf_query($q) { + debug::info("sql : " . $q . ";"); + mysql_unbuffered_query($q . ";", self::get()) or Debug::sqlerror(); + } + + public static function table($nom) { + return Config::get('db_prefixe') . $nom; + } + + public static function test() { + $result = mysql_query("SELECT id, name FROM mytable") or Debug::sqlerror(); + echo "

"; + + while ($row = mysql_fetch_array($result, MYSQL_NUM)) { + printf("ID : %s Nom : %s", $row[0], $row[1]); + } + + mysql_free_result($result); + } + + public static function close() { + mysql_close(self::get()); + } +} + + + + /* + class DB extends Selectable { private static $handle = null; public function __construct() { @@ -63,5 +137,6 @@ class Selectable { } } + */ ?> \ No newline at end of file diff --git a/cms2/code/debug.php b/cms2/code/debug.php index 70cb09c..afbbb64 100644 --- a/cms2/code/debug.php +++ b/cms2/code/debug.php @@ -16,6 +16,9 @@ class Debug { self::afficher(false, false, true); die(); } + public static function sqlerror() { + self::error("MySQL : " . mysql_error()); + } public static function afficher($start = true, $print = true, $end = true) { if ($start) { echo "
";
diff --git a/cms2/code/main.php b/cms2/code/main.php
index 6716b19..b85f5b5 100644
--- a/cms2/code/main.php
+++ b/cms2/code/main.php
@@ -1,6 +1,12 @@
 rendu();
diff --git a/cms2/config.php b/cms2/config.php
index 932ca68..e7ddb04 100644
--- a/cms2/config.php
+++ b/cms2/config.php
@@ -22,6 +22,27 @@ Config::set('chemin_base_stockage', Path::combine(Config::get('chemin_base'), "/
 // En général, c'est le chemin vers le dossier contenant __cms__
 Config::set('chemin_base_public', Path::combine(Config::get('chemin_base'), "/.."));
 
+// Adresse de la base de données. Syntaxe : "hôte", "hôte:port", ":/chemin/vers/socket".
+Config::set('db_hôte', "localhost");
+
+// Utilisateur de la base de données.
+Config::set('db_utilisateur', "root");
+
+// Mot de passe de l'utilisateur de la base de données.
+Config::set('db_mot_de_passe', " ");
+
+// Base dans la base de données (non, ils pouvaient pas faire plus compliqué... m'éneeeeeervent).
+// Sous ubuntu :
+// mysql -u root -p
+// taper le mot de passe donné à l'installation
+// create database mss;
+// show databases;
+// quit
+Config::set('db_base', "mss");
+
+// Préfixe pour les tables de la base de données.
+Config::set('db_prefixe', "moteur_site_simple_2010_");
+
 // ======== FIN CONFIGURATION =======
 
 ?>
\ No newline at end of file