Bonjour,
J'ai développé une classe personnalisée pour la gestion de mon SGBD héritée à partir de PDO. Le problème c'est que lors de l'appel de la méthode d'insertion un message de ce type me sort:
Et rien ne se passe dans la base de donnée.Appel de la méthode 'My_Insert' `etudiant`, `nom_et` , `prenom_et` , `login_et` , `email_et` , `adresse_et` , `tel_et` , 'toto' , 'toto' , 'toto' , 'toto' , 'toto' , '666'
Le code de ma méthode est :
Et le bout de code appelant cette méthode est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private function My_Insert($table , $columns , $values) //pour inserer une nouvelle ligne dans la table $table { echo '<br/>'.'début insertion'.'<br/>'; $req ='insert into '.(string)$table.' ('.(string)$columns.') VALUES ('.(string)$values.')'; $tmp = $this->prepare($req); $res = $tmp->execute(); echo '<br/>'.'fin insertion'.'<br/>'; return($res); }
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 public function inscrire() { if($_POST['pswd2'] == $_POST['pswd_et']) { $db_use = new MyPDO('mysql:host=localhost;dbname = utilisateurs','root',''); //connexion à la base des produits $values = '\''; //initialisation des valeurs $columns = '`'; //initialisation des colonnes foreach($_POST as $ind => $par) { if(($par != null) && ($ind != 'pswd2') && ($ind != 'Inscription')) { $columns = $columns.$ind.'` , `'; //regroupement des noms des colonnes dans une chaîne de caractère $values = $values.$par.'\' , \''; //regroupement des noms des valeurs dans une chaîne de caractère } } $columns = substr($columns,0,strlen($columns)-3); //pour enelever la dernière virgule $values = substr($values,0,strlen($values)-3); $res = $db_use->My_Insert('`etudiant`',$columns,$values); //insertion $db_use = null; //fermeture de la base }
Partager