Bonsoir à tous,
Voilà un nouveau casse-tête pour moi qui nécessite votre éclairage !
J'ai une fonction qui permet d'importer un JSON et insérer une partie de ses infos en base de données.
Tout se déroule parfaitement quand j'appelle cette fonction une fois ("une seule fois", je ne suis pas belge ). Hélas quand j'appelle cette fonction dans une boucle, rien ne s'inscrit en base. Probablement un prérequis avec PDO qui m'échappe, mais je reçois pas de message d'erreur.
J'ai bien une solution : déplacer l'inscription en base en dehors de la fonction, dans ma boucle mais du coup je déplace un problème dont j'aurais jamais la réponse et j'aime me coucher moins bête !
Voici le code simplifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 function nouveauBulletin($id,$gps) { # inscription en base : require_once($_SERVER['DOCUMENT_ROOT']."/bdd.php"); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $ajout = $bdd->prepare("INSERT INTO `meteo` (`id`, `temps`,`degres`,`note`) VALUES (:id, :temps, :degres, :note)"); $ajout->execute(array( 'id' => $id, 'temps' => $temps, 'degres' => $degres, 'note' => $note_meteo )); $bdd = null; $ajout = null; return "ok"; } try { $i = ""; foreach ($tableau_elements as $element) { $id = $element['id']; $gps = $element['gps']; nouveauBulletin($id,$gps); $i++; } echo $i . " éléments copiés !"; } catch(Exception $e) { $Erreur = $e->getMessage(); }
Partager