Agefoddx/classe/GestionBD/bdGestion.php
2025-03-26 10:22:20 +01:00

132 lines
5.1 KiB
PHP

<?php
namespace Module\Agefoddx\Classe\GestionBD;
class bdGestion {
/**
* @return array renvoie la liste de toutes les bd enregistrer dans la base de donnée
*/
public function getListeBD(){
global $db;
$db->query("SET NAMES 'utf8mb4'");
$list = [];
$sql = "SELECT bdid as bdid, nom as nom FROM llx_desal_external_bd bd ORDER BY bdid, nom";
$resql=$db->query($sql);
if ($resql) {
// Parcours des résultats avec fetch_array
while ($row = $db->fetch_array($resql)) {
// Accès aux colonnes via leur index ou alias
$row = ["bdid"=> htmlspecialchars($row['bdid']), "nom"=>htmlspecialchars($row['nom'])]; // Par alias (nom de la colonne)
// Affichage des résultats
$list[] = $row;
}
} else {
// Gestion de l'erreur
echo "Erreur SQL : " . $db->lasterror();
return $list;
}
return $list;
}
/**
* @param int $id id de la bd
* @return array renvoie les informations de la bd selectionné
*/
public function getBdByPk(int $id) {
global $db;
$db->query("SET NAMES 'utf8mb4'");
$list = [];
$id = $db->escape($id);
$sql = "SELECT bdid as idbd, nom, lien, user, port FROM llx_desal_external_bd WHERE bdid='$id'";
$resql=$db->query($sql);
if ($resql) {
// Parcours des résultats avec fetch_array
$row = $db->fetch_array($resql);
// Accès aux colonnes via leur index ou alias
$list = ["idBD"=>htmlspecialchars($row['idbd']), "nomBD"=>htmlspecialchars($row["nom"]), "lienBD"=>htmlspecialchars($row["lien"]), "user"=>htmlspecialchars($row["user"]), "port"=>htmlspecialchars($row["port"])]; // Par alias (nom de la colonne)
// Affichage des résultats
} else {
// Gestion de l'erreur
echo "Erreur SQL : " . $db->lasterror();
return $list;
}
return $list;
}
/**
* @param string $nom nom de la bd
* @param string $lien url de la bd
* @param string $user utilisateur a utilisé
* @param int $port port de la bd
* @return bool renvoie si l'insertion fu effective
*/
public function insertionBD(string $nom, string $lien, string $user, int $port): bool {
global $db;
$db->query("SET NAMES 'utf8mb4'");
$nom = $db->escape($nom); // pour protéger contre l'injection sql
$lien = $db->escape($lien); // pour protéger contre l'injection sql
$user = $db->escape($user); // pour protéger contre l'injection sql
$port = $db->escape($port); // pour protéger contre l'injection sql
$sql = "INSERT INTO llx_desal_external_bd(nom, lien, user, port) VALUES ('$nom','$lien', '$user', $port);";
$resql=$db->query($sql);
if ($resql) { return true; }
return false;
}
/**
* @param int $idBD id de la base de donnée
* @param string $nom nom de la bd
* @param string $lien url de la bd
* @param string $user utilisateur a utilisé
* @param int $port port de la bd
* @return bool renvoie si la modification a pu être faite
*/
public function modificationBD(int $idBD, string $nom, string $lien, string $user, int $port): bool{
global $db;
$db->query("SET NAMES 'utf8mb4'");
$list = [];
$idBD = $db->escape($idBD); // pour protéger contre l'injection sql
$nom = $db->escape($nom); // pour protéger contre l'injection sql
$lien = $db->escape($lien); // pour protéger contre l'injection sql
$user = $db->escape($user); // pour protéger contre l'injection sql
$port = $db->escape($port); // pour protéger contre l'injection sql
$sql = "UPDATE llx_desal_external_bd SET nom='$nom',lien='$lien',user='$user',port='$port' WHERE bdid='$idBD'";
$resql=$db->query($sql);
if ($resql) {
return true;
}
return false;
}
/**
* @param int $idBD id de la base de donnée
* @return bool renvoie si la suppression a été effectuer
*/
public function suppressionBD(int $idBD): bool {
global $db;
$db->query("SET NAMES 'utf8mb4'");
$idBD = $db->escape($idBD); // pour protéger contre l'injection sql
$sql = "DELETE FROM llx_desal_external_bd WHERE bdid = $idBD;";
$resql=$db->query($sql);
if ($resql) { return true; } return false;
}
/**
* @param $id int id de la base de donnée
* @return int renvoie le nombre de tables liées à cette base de donnée
*/
public function bdPossedeDesTables(int $id) : int {
global $db;
$res = 0;
$db->query("SET NAMES 'utf8mb4'");
$id = $db->escape($id); // pour protéger contre l'injection sql
$sql = "SELECT COUNT(tid) as nbrow FROM llx_desal_external_table WHERE bdid = $id;";
$resql=$db->query($sql);
if ($resql) {
$row = $db->fetch_array($resql);
$res = $row["nbrow"];
}
return $res;
}
}