PDOException: SQLSTATE[42000]: Syntax error or access violation:

Résolu/Fermé
arthur32810 Messages postés 102 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 décembre 2016 - 25 mars 2016 à 18:04
arthur32810 Messages postés 102 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 décembre 2016 - 27 mars 2016 à 18:43
Bonjour,

J'obtient cette erreur : PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '))' à la ligne 2

Voila mon code :

<!DOCTYPE html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="apparence.css" rel="stylesheet" type="text/css" title="Mon style"/>
<title>Mon premier fichier HTML</title>
</head>

</body>
<?php
try // Connexion base de données
{
$bdd = new PDO('mysql:host=localhost;dbname=ambulance;charset=utf8', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']?>">
<p> Vehicule : <input type="text" name="vehicule"/>
<p> Date <input type="text" name="date" value="JJ-MM-AAAA" /> </p>
<p> Quantité de carburant <input type="number" name="quantite_carburant"/> Litres </p>
<p> Kilométrage <input type="number" name="kilometre" /> Km </p>
<input type="submit" value="Envoyer" name="bouton" />
</form>

<?php
if(!empty($_POST))
{
if(!empty($_POST['vehicule']) AND !empty($_POST['date']) AND !empty($_POST['quantite_carburant']) AND !empty($_POST['kilometre']))
{
$vehicule = $_POST['vehicule'];
$date = $_POST['date'];
$quantite_carburant = $_POST['quantite_carburant'];
$kilometre = $_POST['kilometre'];

global $bdd;
$req = $bdd->prepare ('INSERT INTO carburant (vehicule, date, quantite_carburant, kilometre, date_ajout)
VALUES (:vehicule, :date, :quantite_carburant, :kilometre, DATE())');
$req -> execute (array (
'vehicule' => $vehicule,
'date' => $date,
'quantite_carburant' => $quantite_carburant,
'kilometre' => $kilometre
));

echo "La saisie à bien été réalisé";
}
else { echo "Erreur dans le formulaire";}
}
else {}
?>
</body>
</html>


Merci d'avance pour vos réponse

Arthur32810

1 réponse

Utilisateur anonyme
25 mars 2016 à 21:06
Bonjour

Tu utilises la fonction DATE() de mysql de manière incorrecte. Il faut lui donner une expression en paramètre, et cette fonction extrait une date de cette expression.
Je suppose que tu voulais mettre
CURDATE()
sans paramètre, ou
DATE(NOW())
par exemple
0
arthur32810 Messages postés 102 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 décembre 2016 1
27 mars 2016 à 18:43
Bonjour,

Ça ne vient pas de là car dans ma base de donnée, j'ai mis un vachar 255.

J'ai réussi à résoudre le problème en créant un autre page.

Bonne journée
0