Salam ; j'i une requête d'insertion qui me génere le message d'erreur suivant:
Erreur de requête : 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 'DEC VALUES('','123','253','2011-02-21','5','3','00','6','23','02','01','5','3','' at line 1031
code d'insertion
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
43
44
45
46
47
48
49
50
51
52
 
// inclusion de fichier de connexion
 
$datefr=$_POST['datedec'];
		$split = explode("/",$datefr); 
		$annee = $split[2]; 
		$mois = $split[1]; 
		$jour = $split[0]; 
		$datefr= "$annee"."-"."$mois"."-"."$jour"; 
		echo $datefr; // pour verifier le résultat
 
	$cdet='123';
	$cdc='253';
 
 
$insertdata = $cbd->prepare("INSERT INTO DEC VALUES('',:cdet,:cdc,:datedec,:m,:f,:m1,:f1,:m2,:f2,:m3,:f3,:m4,:f4,:m5,:f5,:m6,:f6,:m7,:f7,:m8,:f8)");
	try
	{
	$insertdata->bindParam(':cdet',			$cdet, 		 			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':cdc',			$cdc,  		  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':datedec',  	$datefr,  					PDO::PARAM_STR); // date 
	$insertdata->bindParam(':m',  		$_POST['m'],  	  			PDO::PARAM_INT); // entier
	var_dump($_POST['m']); // pour vérifier le contenu affiche (string '5' (length=1)) exacte
	$insertdata->bindParam(':f',  		$_POST['f'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m1',  		$_POST['m1'],  	  			PDO::PARAM_INT); // entier
 
	$insertdata->bindParam(':f1',  		$_POST['f1'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m2',  		$_POST['m2'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':f2',  		$_POST['f2'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m3',  		$_POST['m3'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':f3',  		$_POST['f3'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m4',  		$_POST['m4'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':f4',  		$_POST['f4'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m5',  		$_POST['m5'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':f5',  		$_POST['f5'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m6',  		$_POST['m6'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':f6',  		$_POST['f6'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m7',  		$_POST['m7'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':f7',  		$_POST['f7'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':m8',  		$_POST['m8'],  	  			PDO::PARAM_INT); // entier
	$insertdata->bindParam(':f8',  		$_POST['f8'],  	  			PDO::PARAM_INT); // entier
 
	$insertdata->execute();
	}
	catch ( Exception $e )
	{
	echo 'Erreur de requète : ', $e->getMessage();
 
	}
 
 
			}
selon la doc la définition de l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Erreur: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)
 
Message: %s près de '%s' à la ligne %d
j'ai rien compris !!!
dans la BDD , les champs m,f......m8,f8 sont de type smallint (5).
j'ai vérifier le code et y'a pas de caractères spéciaux qui peuvent généré ce type d'erreur.
at line 1031
cette ligne n'existe pas dans mon code par contre le 131 sa existe .:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$insertdata->bindParam(':f1',  $_POST['f1'], PDO::PARAM_INT); // entier
le résultat de cette ligne est affiché dans le message d’erreur f1=6.