Bonjour à tous,
Voilà, je me tire les cheveux depuis 2 jours sur un problème d'insertion en table.
Ci-dessous, deux fonctions: l'une marche, l'autre pas...
Je n'ai pas d'erreur PHP en logs.
errorInfo renvoie pour chacune : Array([0]=>00000)
(Maj. J'ai mis ensuite le code erreur PDO... Je dois avoir un truc dans les yeux, c'est possible!)
insertAnswer() fonctionne, insertQuestion() non. Et je ne comprends pas...
Si ça se trouve il y a un truc gros comme un camion sous mes yeux trop las.
D'avance merci !
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
33
34
35
36
37
38
39
40
41
42 function insertAnswer() { $dbh = DBHandler::getInstance(); $user = 1; $current_question = 2; $question = 2; $date = date("Y-m-d H:m:s");; $period = 'xxxx'; $answer = 'toto'; $sql = "INSERT INTO vto_answers (user_id, question_id, date, period, answer) VALUES ( :user_id, :question_id, :date, :period, :answer)"; $stmt = $dbh->prepare($sql); $stmt->execute(array(':user_id'=>$user, ':question_id'=>$question, ':date'=>$date, ':period'=>$period, ':answer'=>$answer)); print_r($dbh->errorInfo()); DBHandler::closeConnection(); } function insertQuestion() { $dbh = DBHandler::getInstance(); $order = 1; $label = 'toto'; $type = 'SingleLineText'; $meta = 'test'; $group_id = 1; $sql = "INSERT INTO vto_questions (order, label, type, meta, group_id) VALUES (:order, :label, :type, :meta, :group_id)"; $stmt = $dbh->prepare($sql); $stmt->execute(array(':order'=>$order, ':label'=>$label, ':type'=>$type, ':meta'=>$meta, ':group_id'=>$group_id)); print_r($dbh->errorInfo()); DBHandler::closeConnection(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order, label, type, meta, group_id) VALUES ('1', 'toto', 'SingleLineText', 'test' at line 1' in ~/htdocs/temp.php:39 Stack trace: #0 ~/htdocs/temp.php(39): PDOStatement->execute(Array) #1 ~/htdocs/temp.php(46): insertQuestion() #2 {main} thrown in ~/htdocs/temp.php on line 39
Partager