From 19277aae878fc4a82587ef66aa895363ea974dab Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sat, 10 Dec 2016 20:50:45 +0100 Subject: [PATCH] Updates orm:0.8.2/Rows + orm:0.8.2/Table to consider database:2.0/core/DatabaseDriver driver label --- src/packages/orm/0.8.2/core/Rows.php | 28 ++++++++++++++++----------- src/packages/orm/0.8.2/core/Table.php | 21 ++++++++++++-------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/packages/orm/0.8.2/core/Rows.php b/src/packages/orm/0.8.2/core/Rows.php index 8772ee0..0066f89 100644 --- a/src/packages/orm/0.8.2/core/Rows.php +++ b/src/packages/orm/0.8.2/core/Rows.php @@ -39,6 +39,7 @@ const INSERT_DEFAULT = '__DEFAULT__'; // Valeur DEFAULT (pour insertion) /* Attributs */ + private $driver; // Database driver label private $where; // Tableau associatif contenant les conditions private $select; // Tableau contenant la liste des champs à afficher private $orderby; // Tableau contenant la liste des orderby @@ -50,25 +51,29 @@ /* CONSTRUCTEUR * * @schema Tableau contenant les informations de la requête + * @driver [optional] DatabaseDriver label * */ - public function __construct($schema){ - /* (1) On récupère les informations */ + public function __construct($schema, $driver=null){ + /* (1) Database Driver */ + $this->driver = $driver; + + /* (2) On récupère les informations */ $this->schema = $schema; - /* (2) On initialise les conditions */ + /* (3) On initialise les conditions */ $this->where = []; - /* (3) On initialise les champs à retourner */ + /* (4) On initialise les champs à retourner */ $this->select = []; - /* (4) On initialise l'ordonnancement' */ + /* (5) On initialise l'ordonnancement' */ $this->orderby = []; - /* (5) On initialise le caractère 'unique' du résultat */ + /* (6) On initialise le caractère 'unique' du résultat */ $this->unique = false; - /* (6) On initialise les jointures */ + /* (7) On initialise les jointures */ $this->joined = []; } @@ -562,7 +567,7 @@ $requestString = SQLBuilder::BUILD($requestS).';'; /* (2) On prépare la requête */ - $request = Database::getPDO()->prepare($requestString); + $request = DatabaseDriver::getPDO($this->driver)->prepare($requestString); @@ -589,6 +594,7 @@ * */ public function insert($entry){ + /* [0] On vérifie les paramètres =========================================================*/ /* (1) Si c'est pas un tableau avec au moins une entrée, erreur */ @@ -687,7 +693,7 @@ /* [2] On bind les paramètres et exécute la requête =========================================================*/ /* (0) On initialise la requête et les paramètres */ - $request = Database::getPDO()->prepare($requestS.';'); + $request = DatabaseDriver::getPDO($this->driver)->prepare($requestS.';'); $bound = []; /* (1) On bind les paramètres */ @@ -779,7 +785,7 @@ $requestString = SQLBuilder::BUILD($requestS).';'; /* (2) On prépare la requête */ - $request = Database::getPDO()->prepare($requestString); + $request = DatabaseDriver::getPDO($this->driver)->prepare($requestString); /* [5] On exécute la requête et retourne le résultat =========================================================*/ @@ -959,7 +965,7 @@ $requestString = SQLBuilder::BUILD($requestS).';'; /* (3) On prépare la requête */ - $request = Database::getPDO()->prepare($requestString); + $request = DatabaseDriver::getPDO($this->driver)->prepare($requestString); // var_dump($requestString); diff --git a/src/packages/orm/0.8.2/core/Table.php b/src/packages/orm/0.8.2/core/Table.php index 317a3a2..7c5e298 100644 --- a/src/packages/orm/0.8.2/core/Table.php +++ b/src/packages/orm/0.8.2/core/Table.php @@ -10,19 +10,24 @@ // CLASSE MAITRE class Table{ - private static $database = 'logauth'; + private static $database; /* RENVOIE LES DONNEES D'UNE TABLE * * @table Nom de la table à selectionner + * @driver [optional] DatabaseDriver label * * @return this Retourne une instance de l'ORM * */ - public static function get($table_name){ + public static function get($table_name, $driver=null){ /* [0] Initialisation des attributs =========================================================*/ + // get database + self::$database = DatabaseDriver::get($driver)->getConfig()['dbname']; + + // build schema $schema = [ 'database' => self::$database, 'table' => null, @@ -33,8 +38,8 @@ /* [1] On vérifie que la table existe =========================================================*/ /* (1) Requête */ - $checkTable = Database::getPDO()->query("SHOW tables FROM ".self::$database); - $checkTableResult = Database::delNumeric( $checkTable->fetchAll() ); + $checkTable = DatabaseDriver::getPDO()->query("SHOW tables FROM ".self::$database); + $checkTableResult = $checkTable->fetchAll(); /* (2) On met en forme les données */ $tables = []; @@ -53,8 +58,8 @@ /* [2] Si la table existe, on récupère les colonnes =========================================================*/ /* (1) On récupère les colonnes */ - $getColumns = Database::getPDO()->query("SHOW columns FROM ".self::$database.'.'.$table_name); - $columnsResult = Database::delNumeric( $getColumns->fetchAll() ); + $getColumns = DatabaseDriver::getPDO()->query("SHOW columns FROM ".self::$database.'.'.$table_name); + $columnsResult = $getColumns->fetchAll(); /* (2) On met en forme les données */ $columns = []; @@ -84,7 +89,7 @@ /* [3] On récupère les clés étrangères =========================================================*/ /* (1) On récupère le texte du 'CREATE TABLE' */ - $getCreateTable = Database::getPDO()->query("show create table ".$table_name); + $getCreateTable = DatabaseDriver::getPDO()->query("show create table ".$table_name); $create_table = $getCreateTable->fetch()['Create Table']; /* (2) On découpte en lignes */ @@ -99,7 +104,7 @@ /* [3] On renvoie une instance de 'Rows' =========================================================*/ - return new Rows($schema); + return new Rows($schema, $driver); }