Bonjour ,
Alors j'ai un script qui me permet de récupérer les données d'un fichiers json. Dans ce fichier json je dois notamment récupérer les clés des objets . Voici le script en question :
Mais à l'exécution de mon script j'obtient l'erreur suivante :
"Warning: mysqli_connect(): Headers and client library minor version mismatch. Headers:50556 Library:50637 in /home/adm_ldelbecque/Script/scriptRecupDonneesSurSatellite.php on line 28"
Merci beaucoup d'avance pour votre aide.
Modifié par Cherrygolo (18 Jun 2018 - 14:22)
Alors j'ai un script qui me permet de récupérer les données d'un fichiers json. Dans ce fichier json je dois notamment récupérer les clés des objets . Voici le script en question :
<?php
/* Script permettant de récupérer les données du fichier.json du satellite
+ utiliser ces données pour mettre à jour la base de données bddProjetInterface
si elles n'y sont pas déjà */
//Variables
//données à utiliser pour les requêtes d'insertion de données dans la bdd
$valeurFqdn; //hostname = "value" de la "cle" fqdn dans la table hieravalue
$valeurAppli; // valeur de la propriété appli = "value" de la "cle" appli dans la table hieravalue
$environment; //valeur de la propriété "environment" = "environment" dans la table hieravalue
//données de vérification de l'absence des données dans la table hieravalues avant de les ajouter
$requeteVerif; // requête pour vérifier si les données qu'on voudrait ajouter ne sont pas déjà présentes dans la table hieravalues
$apparitionDonnees; //nbr de fois où apparaissent les données qu'on voudrait ajouter dans la table hieravalues
//index du tableau qui récupère les hostname
$i = 0; //l'index de ce tableau commence à 0
//Code
//récupération du fichier.json
$jsonFile = file_get_contents('https://lnxsatelliteprd01.serveurs.cg59.fr/pub/reports/hosts.json');
//décode le fichier.json
$jsonDataKey = json_decode($jsonFile, true); // pour pouvoir récupérer les hostname
$jsonData = json_decode($jsonFile);
//Connexion à la bdd avec son test
$objBdd = mysqli_connect("lnxdev01", "admin", "adminadmin", "bddProjetInterface");
//Si la connexion à la base de données à réussie, on s'occupe de la mise à jour de ses données
if ($objBdd) {
//remplissage de la base de données
//pour chaque objet json du fichiers
foreach ($jsonData as $envt) {
// récupération du $i ème hostname du fichier
$valeurFqdn = array_keys($jsonDataKey)[$i];
$environment = $envt->environment;
//vérification de l'absence de cette données dans la table hieravalues
$requeteVerif = "SELECT COUNT(*) AS nombre_entrees FROM hieravalues WHERE cle='fqdn' AND value=" . $valeurFqdn . " AND environment=" . $environment;
$apparitionDonnees = mysqli_query($objBdd, $requeteVerif);
//si les données n'existent pas déjà dans la table ($result=0), on les ajoute. Sinon on n'ajoute rien
if ($apparitionDonnees == 0) {
//requête pour insérer les données dans la table
$requeteFqdn = "INSERT INTO hieravalues(cle,value,environment) VALUES('fqdn'," . $valeurFqdn . "," . $environment . ")";
//exécution de la requête
mysqli_query($objBdd, $requeteFqdn);
}
//remplissage de la bdd avec les données concernant l'appli
// si il n'y a pas de propriété appli
if (isset($envt->appli) == false) {
//si il y a une propriété app_svc mais pas appli, on affiche un message d'erreur
if(isset($envt->app_svc) == true){
echo "Erreur : pas de valeur \"appli\" mais une valeur \"app_svc\" " ;
}
}
//si il y a une propriété appli
else {
//si il n'y a pas de propriété app_svc dans l'objet json mais une propriété appli
if (isset($envt->app_svc) == false) {
$valeurAppli = $envt->appli;
$environment = $envt->environment;
//requête pour insérer les données dans la table
$requeteAppli = "INSERT INTO hieravalues(cle,value,environment) VALUES('appli'," . $valeurAppli . "," . $environment . ")";
}
//si il y a une propriété app_svc dans l'objet json et une appli
else {
$valeurAppli = $envt->appli . "-" . $envt->app_svc; //concaténation des valeurs de appli et app_svc
$environment = $envt->environment;
//requête pour insérer les données
$requeteAppli = "INSERT INTO hieravalues(cle,value,environment) VALUES('appli'," . $valeurAppli . "," . $environment . ")";
}
//vérification de l'absence de cette donnée dans la table hieravalues
$requeteVerif = "SELECT COUNT(*) AS nombre_entrees FROM hieravalues WHERE cle='appli' AND value=" . $valeurAppli . "AND environment=" . $environment;
$apparitionDonnees = mysqli_query($objBdd, $requeteVerif);
//si les données n'existent pas déjà dans la table, on les ajoute. Sinon on n'ajoute rien
if ($apparitionDonnees == 0) {
//exécution de la requête
mysqli_query($objBdd, $requeteAppli);
}
}
// passage à l'hostname suivant
$i += 1;
}
}
// si la connexion à la bdd échoue , on traite cette erreur avec un affichage
else {
echo 'Erreur de connexion...\n';
}
?>
Mais à l'exécution de mon script j'obtient l'erreur suivante :
"Warning: mysqli_connect(): Headers and client library minor version mismatch. Headers:50556 Library:50637 in /home/adm_ldelbecque/Script/scriptRecupDonneesSurSatellite.php on line 28"
Merci beaucoup d'avance pour votre aide.
Modifié par Cherrygolo (18 Jun 2018 - 14:22)