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; } }