132 lines
5.1 KiB
PHP
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;
|
|
}
|
|
} |