$m) { $table = "create table if not exists " . self::table($nom_module) . " (uid_page integer"; foreach ($m['attributs'] as $nom => &$attr) { if (!$attr['global']) { $table .= ", $nom varchar(50)"; } } $table .= ")"; self::unbuf_query($table); self::modify("replace into " . self::table("modules") . " values('" . $nom_module . "')"); } self::test(); } public static function test() { // Insertion de la racine : self::modify("replace into " . self::table("pages") . " values(1, '0', '0', 'true', 'racine', '', 'mGalerieIndex')"); self::modify("replace into " . self::table("pages") . " values(2, '0', '0', 'true', '', '', 'mGaleriePeriode')"); self::modify("replace into " . self::table("pages") . " values(3, '0', '0', 'true', '', '', 'mGaleriePeriode')"); self::modify("replace into " . self::table("liens") . " values(1, 2, 'enfant')"); self::modify("replace into " . self::table("liens") . " values(1, 3, 'enfant')"); } public static function begin_transaction() { self::unbuf_query('begin'); } public static function commit() { self::unbuf_query('commit'); } public static function unbuf_query($q) { debug::info("sql : " . $q . ";"); mysql_unbuffered_query($q . ";", self::get()) or Debug::sqlerror(); } public static function select($q) { debug::info("sql : " . $q); $qres = mysql_query($q, BDD::get()) or Debug::sqlerror(); $ret = array(); while ($row = mysql_fetch_array($qres)) { $ret[] = $row; } return $ret; } public static function modify($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 close() { if (is_resource(self::$handle)) { self::commit(); mysql_close(self::get()) or Debug::sqlerror(); self::$handle = null; } } } /* class DB extends Selectable { private static $handle = null; public function __construct() { if (self::$handle === null) { niy("Connexion à la BDD"); } else { return self::$handle; } } } class Selectable { // TODO : comment faire un select sur la table page ? // TODO : comment créer une nouvelle page ? function select($qw_champs, $qw_ordre = "", $limit = 0, $offset = 0) { // Retourne un selectable, qui a une méthode run() (la méthode run renvoie la liste d'éléments. Chaque élément a une méthode set()). // Une limit de 0 signifie qu'on prend tous les éléments à partir de $offset. } function set($valeur, $qw_champs) { // Appelle set(valeur) sur chaque élément de $this->select(champs, ordre, 0, 0)->run() } function set_with_uid($valeur, int $uid) { // Appelle set(valeur) sur la ligne de la base de données avec cet uid. // Les