Bonjour,
J'ai créé une fonction qui récupère des POST pour les intégrer dans une table, cette fonction marchait sur ma première table mais pas sur une nouvellement créée:
Voici l'erreur générée:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined'
Le problème vient-il de la construction de ma table ou d'une erreur dans mon code, le voici pour ceux que ça intéresse:
le modèle des POST envoyés
$id est soit l'index de la ligne à modifier ou vaut "plus" dans le cadre d'une création de ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <input type="text" name="nom_de_la_table['.$id.'][11]" value="" />
"11" est le nom du champ de ma table.
La fonction qui permet théoriquement d'alimenter avec un formulaire plusieurs tables d'une base:
Merci de vos réponses.
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 function ecriture_base($base,$post){ // j'ouvre la connexion if($post!='' or $get_id>0){ $bdd = new PDO ('mysql:host=localhost;dbname='.$base.';charset=utf8', 'util', 'pass'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } if($post!=''){ foreach($post as $table => $lgn){ foreach($lgn as $key => $var){ if($key=='plus' or $key==''){ ksort($var); //creation d'une ligne $req = $bdd->prepare('INSERT INTO '.$table.' ( '.implode(',',array_keys($var)).') VALUES (:'.implode(',:',array_keys($var)).')'); $req->execute($var); } if($key>0){ //Modif = UPDATE fichier SET champ à corriger = modifcation foreach($var as $id => $val){$valeur[]=' '.$id.' = "'.$val.'" ';} $req = $bdd->prepare('UPDATE '.$table.' SET '.implode(',',$valeur).' where id = :search'); $req->execute(array('search' => $key)); } } } } }
Partager