78 lines
2.9 KiB
PHP
78 lines
2.9 KiB
PHP
<?php
|
|
namespace Module\Agefoddx\Classe\GestionBD;
|
|
use Module\Agefoddx\Classe\GestionBD\bdExterneInteraction;
|
|
use PDO;
|
|
|
|
class bdExterneTableGestion {
|
|
/**
|
|
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
|
|
* @return array renvoie la liste
|
|
*/
|
|
public static function getListeTables(bdExterneInteraction $bd) {
|
|
$pdo = $bd->getPdo();
|
|
$adresse = $bd->getNomBd();
|
|
$list = [];
|
|
$resql= $pdo->query("SELECT table_name FROM information_schema.tables WHERE table_schema = '$adresse';");
|
|
foreach ($resql as $value){
|
|
$list[] = $value["table_name"];
|
|
} return $list;
|
|
}
|
|
|
|
/**
|
|
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
|
|
* @param $table string nom de la table
|
|
* @return string return le type de la clef primaire
|
|
*/
|
|
public static function getTypePk(bdExterneInteraction $bd, string $table) : string {
|
|
$pdo = $bd->getPdo();
|
|
$sql = "SELECT DATA_TYPE
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_NAME = '$table'
|
|
AND COLUMN_KEY = 'PRI';";
|
|
$resql= $pdo->query($sql);
|
|
return $resql->fetch()[0];
|
|
}
|
|
|
|
/**
|
|
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
|
|
* @param $table string nom de la table
|
|
* @return string return le nom de la colonne de la clef primaire
|
|
*/
|
|
public static function getPk(bdExterneInteraction $bd, string $table) {
|
|
$pdo = $bd->getPdo();
|
|
$sql = "SELECT COLUMN_NAME
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_NAME = '$table'
|
|
AND COLUMN_KEY = 'PRI';";
|
|
$nomClef = $pdo->query($sql);
|
|
$nomClef = $nomClef->fetch()["COLUMN_NAME"];
|
|
return $nomClef;
|
|
}
|
|
|
|
/**
|
|
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
|
|
* @param $listeValue array liste des valeurs liée a récupéré
|
|
* @param $table string nom de la table
|
|
* @return array liste des valeurs récupérées
|
|
*/
|
|
public static function getValeurAExporter(bdExterneInteraction $bd, array $listeValue, string $table){
|
|
$pdo = $bd->getPdo();
|
|
$liste = [];
|
|
$parametreSelection = "";
|
|
foreach ($listeValue as $value){
|
|
if ($value["fixe"] == "false") $parametreSelection = $parametreSelection.", ".$value[key($value)];
|
|
}
|
|
$parametreSelection = substr($parametreSelection, 2);
|
|
$sql = "SELECT $parametreSelection FROM $table;";
|
|
$resql= $pdo->query($sql);
|
|
$ligne = [];
|
|
foreach ($resql as $row){
|
|
foreach ($listeValue as $value){
|
|
if ($value["fixe"] == "false") $ligne[key($value)] = $row[$value[key($value)]];
|
|
else $ligne[key($value)] = $value[key($value)];
|
|
}
|
|
$liste[] = $ligne;
|
|
}
|
|
return $liste;
|
|
}
|
|
} |