Liste de champ/tables contenant des champs * * @return sql Renvoie un tableau formatté * */ public static function SELECT($sqlFields){ /* [0] Initialisation =========================================================*/ $sql = []; /* [1] On construit la requête =========================================================*/ $c = 0; foreach($sqlFields as $table=>$fields) foreach($fields as $field){ $sql[$c] = $table.'.'.$field; $c++; } return $sql; } /* CONSTRUIT LA REQUETE FORMATTEE "FROM" AVEC UNE LISTE DE TABLES * * @tables Liste de tables OU SQL PUR * * @return sql Renvoie un tableau formatté * */ public static function FROM($tables){ return $tables; } /* CONSTRUIT LA REQUETE FORMATTEE "UPDATE" AVEC LA TABLE EN QUESTION * * @table Table en question * * @return sql Renvoie un tableau formatté * */ public static function UPDATE($table){ /* [0] Initialisation =========================================================*/ $sql = []; /* [1] On construit la requête =========================================================*/ $sql[] = $table; return $sql; } /* CONSTRUIT LA REQUETE TEXTUELLE "IN" AVEC UNE LISTE DE TABLES * * @field Tableau contenant [table, field] * @array Valeurs de la clause IN * @offset Permet de rendre la condition unique (nommage des variables) * @binded Tableau associatif contenant les variables "bindés" -> ajout des champs * * @return sql Renvoie le textuel formatté * */ public static function IN($field, $array, $offset=0, &$binded){ /* [0] Initialisation =========================================================*/ $sql = ''; /* [1] On construit la requête =========================================================*/ /* (1) Champ */ $sql .= $field[0].'.'.$field[1].' IN ('; /* (2) Valeurs */ $c = 0; foreach($array as $i=>$value){ if( $c > 0 ) $sql .= ', '; $sql .= ':'.$field[0].'_x_'.$field[1].'_'.$offset.'_'.$i; $binded[':'.$field[0].'_x_'.$field[1].'_'.$offset.'_'.$i] = $value; $c++; } return $sql.")"; } /* CONSTRUIT LA REQUETE TEXTUELLE "WHERE" AVEC UNE LISTE DE TABLES * * @field Tableau contenant [table, field] * @valeur Valeurs de la clause WHERE [valeur, opérateur] * @offset Permet de rendre la condition unique (nommage des variables) * @binded Tableau associatif contenant les variables "bindés" -> ajout des champs * * @return sql Renvoie le textuel formatté * */ public static function WHERE($field, $value, $offset=0, &$binded){ /* [0] Initialisation =========================================================*/ $sql = ''; /* [1] On construit la requête =========================================================*/ /* (1) Chamo */ $sql .= $field[0].'.'.$field[1].' '; /* (2) Opérateur */ $sql .= substr($value[1], 2, -2).' '; /* (3) Variable */ $sql .= ':'.$field[0].'_x_'.$field[1].'_'.$offset; $binded[':'.$field[0].'_x_'.$field[1].'_'.$offset] = $value[0]; return $sql; } /* CONSTRUIT LA REQUETE FORMATTEE "SET" AVEC UNE LISTE DE TABLES * * @values Tableau de la forme [ field=>value, field2=>value2 ] * @binded Tableau associatif contenant les variables "bindés" -> ajout des champs * * @return sql Renvoie un tableau formatté * */ public static function SET($values, &$binded){ /* [0] Initialisation =========================================================*/ $sql = []; /* [1] On construit la requête =========================================================*/ $c = 0; foreach($values as $field=>$value){ /* (1) Champ */ $sql[$c] = ($c>0) ? "\n, " : ''; $sql[$c] .= $field.' = '; /* (2) Variable */ $sql[$c] .= ':update_'.$field; $binded[':update_'.$field] = $value; $c++; } return $sql; } /* CONSTRUIT LA REQUETE FORMATTEE "LIMIT" AVEC UN NOMBRE D'ENTREES * * @count Nombre limite * * @return sql Renvoie un sql formatté * */ public static function LIMIT($count=null){ /* [0] Initialisation =========================================================*/ $sql = []; /* [1] On construit la requête =========================================================*/ if( intval($count) == $count ) $sql = intval($count); return $sql; } /* CONSTRUIT LA REQUETE A PARTIR D'UNE REQUETTE FORMATTEE * * @request Requête formattée * * @return sql Requête formattée en SQL * */ public static function BUILD($request){ /* [1] Clause SELECT =========================================================*/ $sql = 'SELECT '; $c = 0; foreach($request['SELECT'] as $field){ $sql .= ($c==0) ? $field : ", $field"; $c++; } $sql .= "\n"; /* [2] Clause FROM =========================================================*/ $sql .= 'FROM '; $c = 0; foreach($request['FROM'] as $field){ $sql .= ($c==0) ? $field : ", $field"; $c++; } $sql .= "\n"; /* [3] Clause WHERE =========================================================*/ $c = 0; foreach($request['WHERE'] as $field){ $sql .= ($c==0) ? "WHERE $field\n" : "AND $field\n"; $c++; } $sql .= ($c==0) ? '' : "\n"; /* [4] Clause LIMIT =========================================================*/ if( is_numeric($request['LIMIT']) ) $sql .= 'LIMIT '.intval($request['LIMIT']); /* [5] On retourne le résultat =========================================================*/ return $sql; } } ?>