49 lines
2.2 KiB
PHP
49 lines
2.2 KiB
PHP
<?php
|
|
namespace Module\Agefoddx\Classe\GestionBD;
|
|
use Module\Agefoddx\Classe\Classe\GestionTexte;
|
|
class bdExterneLigneGestion {
|
|
/**
|
|
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
|
|
* @param string $nomTable nom de la table
|
|
* @return array renvoie le nom des colones de la table
|
|
*/
|
|
public static function getListeLigne (bdExterneInteraction $bd, string $nomTable) {
|
|
$pdo = $bd->getPdo();
|
|
$list = [];
|
|
$resql= $pdo->query("SELECT column_name as 'row_name' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$nomTable';");
|
|
foreach ($resql as $value){
|
|
if (!in_array($value["row_name"], self::getListeFK($bd, $nomTable)))
|
|
$list[] = $value["row_name"];
|
|
} return $list;
|
|
}
|
|
|
|
/**
|
|
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
|
|
* @param string $nomTable nom de la table
|
|
* @param string $nomLigne nom de la colonne
|
|
* @return string|null renvoie le type de la colonne
|
|
*/
|
|
public static function getTypeLigne(bdExterneInteraction $bd, string $nomTable, string $nomLigne) : ?string {
|
|
$pdo = $bd->getPdo();
|
|
$resql = $pdo->query("SELECT COLUMN_TYPE as 'colType'FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$nomTable' AND COLUMN_NAME = '$nomLigne';");
|
|
foreach ($resql as $value)$result = $value["colType"];
|
|
if ($result != '') return $result;
|
|
else return null;
|
|
}
|
|
|
|
/**
|
|
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
|
|
* @param string $nomTable nom de la table
|
|
* @return array renvoie la liste des clefs étrangères de la table
|
|
*/
|
|
public static function getListeFK(bdExterneInteraction $bd, string $nomTable) {
|
|
$pdo = $bd->getPdo();
|
|
$list = [];
|
|
$resql= $pdo->query("SELECT COLUMN_NAME as 'NomLigne', REFERENCED_TABLE_NAME AS 'TableReference' FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = '$nomTable' AND REFERENCED_TABLE_NAME IS NOT NULL;");
|
|
foreach ($resql as $value){
|
|
$list[] =["row_name" => $value["NomLigne"], "TableReference"=>$value['TableReference']];
|
|
}
|
|
return $list;
|
|
}
|
|
}
|