Updates orm:0.8.2/Rows + orm:0.8.2/Table to consider database:2.0/core/DatabaseDriver driver label

This commit is contained in:
xdrm-brackets 2016-12-10 20:50:45 +01:00
parent e826ea283a
commit 19277aae87
2 changed files with 30 additions and 19 deletions

View File

@ -39,6 +39,7 @@
const INSERT_DEFAULT = '__DEFAULT__'; // Valeur DEFAULT (pour insertion) const INSERT_DEFAULT = '__DEFAULT__'; // Valeur DEFAULT (pour insertion)
/* Attributs */ /* Attributs */
private $driver; // Database driver label
private $where; // Tableau associatif contenant les conditions private $where; // Tableau associatif contenant les conditions
private $select; // Tableau contenant la liste des champs à afficher private $select; // Tableau contenant la liste des champs à afficher
private $orderby; // Tableau contenant la liste des orderby private $orderby; // Tableau contenant la liste des orderby
@ -50,25 +51,29 @@
/* CONSTRUCTEUR /* CONSTRUCTEUR
* *
* @schema<Array> Tableau contenant les informations de la requête * @schema<Array> Tableau contenant les informations de la requête
* @driver<String> [optional] DatabaseDriver label
* *
*/ */
public function __construct($schema){ public function __construct($schema, $driver=null){
/* (1) On récupère les informations */ /* (1) Database Driver */
$this->driver = $driver;
/* (2) On récupère les informations */
$this->schema = $schema; $this->schema = $schema;
/* (2) On initialise les conditions */ /* (3) On initialise les conditions */
$this->where = []; $this->where = [];
/* (3) On initialise les champs à retourner */ /* (4) On initialise les champs à retourner */
$this->select = []; $this->select = [];
/* (4) On initialise l'ordonnancement' */ /* (5) On initialise l'ordonnancement' */
$this->orderby = []; $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; $this->unique = false;
/* (6) On initialise les jointures */ /* (7) On initialise les jointures */
$this->joined = []; $this->joined = [];
} }
@ -562,7 +567,7 @@
$requestString = SQLBuilder::BUILD($requestS).';'; $requestString = SQLBuilder::BUILD($requestS).';';
/* (2) On prépare la requête */ /* (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){ public function insert($entry){
/* [0] On vérifie les paramètres /* [0] On vérifie les paramètres
=========================================================*/ =========================================================*/
/* (1) Si c'est pas un tableau avec au moins une entrée, erreur */ /* (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 /* [2] On bind les paramètres et exécute la requête
=========================================================*/ =========================================================*/
/* (0) On initialise la requête et les paramètres */ /* (0) On initialise la requête et les paramètres */
$request = Database::getPDO()->prepare($requestS.';'); $request = DatabaseDriver::getPDO($this->driver)->prepare($requestS.';');
$bound = []; $bound = [];
/* (1) On bind les paramètres */ /* (1) On bind les paramètres */
@ -779,7 +785,7 @@
$requestString = SQLBuilder::BUILD($requestS).';'; $requestString = SQLBuilder::BUILD($requestS).';';
/* (2) On prépare la requête */ /* (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 /* [5] On exécute la requête et retourne le résultat
=========================================================*/ =========================================================*/
@ -959,7 +965,7 @@
$requestString = SQLBuilder::BUILD($requestS).';'; $requestString = SQLBuilder::BUILD($requestS).';';
/* (3) On prépare la requête */ /* (3) On prépare la requête */
$request = Database::getPDO()->prepare($requestString); $request = DatabaseDriver::getPDO($this->driver)->prepare($requestString);
// var_dump($requestString); // var_dump($requestString);

View File

@ -10,19 +10,24 @@
// CLASSE MAITRE // CLASSE MAITRE
class Table{ class Table{
private static $database = 'logauth'; private static $database;
/* RENVOIE LES DONNEES D'UNE TABLE /* RENVOIE LES DONNEES D'UNE TABLE
* *
* @table<String> Nom de la table à selectionner * @table<String> Nom de la table à selectionner
* @driver<String> [optional] DatabaseDriver label
* *
* @return this<ORM> Retourne une instance de l'ORM * @return this<ORM> Retourne une instance de l'ORM
* *
*/ */
public static function get($table_name){ public static function get($table_name, $driver=null){
/* [0] Initialisation des attributs /* [0] Initialisation des attributs
=========================================================*/ =========================================================*/
// get database
self::$database = DatabaseDriver::get($driver)->getConfig()['dbname'];
// build schema
$schema = [ $schema = [
'database' => self::$database, 'database' => self::$database,
'table' => null, 'table' => null,
@ -33,8 +38,8 @@
/* [1] On vérifie que la table existe /* [1] On vérifie que la table existe
=========================================================*/ =========================================================*/
/* (1) Requête */ /* (1) Requête */
$checkTable = Database::getPDO()->query("SHOW tables FROM ".self::$database); $checkTable = DatabaseDriver::getPDO()->query("SHOW tables FROM ".self::$database);
$checkTableResult = Database::delNumeric( $checkTable->fetchAll() ); $checkTableResult = $checkTable->fetchAll();
/* (2) On met en forme les données */ /* (2) On met en forme les données */
$tables = []; $tables = [];
@ -53,8 +58,8 @@
/* [2] Si la table existe, on récupère les colonnes /* [2] Si la table existe, on récupère les colonnes
=========================================================*/ =========================================================*/
/* (1) On récupère les colonnes */ /* (1) On récupère les colonnes */
$getColumns = Database::getPDO()->query("SHOW columns FROM ".self::$database.'.'.$table_name); $getColumns = DatabaseDriver::getPDO()->query("SHOW columns FROM ".self::$database.'.'.$table_name);
$columnsResult = Database::delNumeric( $getColumns->fetchAll() ); $columnsResult = $getColumns->fetchAll();
/* (2) On met en forme les données */ /* (2) On met en forme les données */
$columns = []; $columns = [];
@ -84,7 +89,7 @@
/* [3] On récupère les clés étrangères /* [3] On récupère les clés étrangères
=========================================================*/ =========================================================*/
/* (1) On récupère le texte du 'CREATE TABLE' */ /* (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']; $create_table = $getCreateTable->fetch()['Create Table'];
/* (2) On découpte en lignes */ /* (2) On découpte en lignes */
@ -99,7 +104,7 @@
/* [3] On renvoie une instance de 'Rows' /* [3] On renvoie une instance de 'Rows'
=========================================================*/ =========================================================*/
return new Rows($schema); return new Rows($schema, $driver);
} }