damien merles
damien merles

Reputation: 25

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;

I'm trying to do a form to insert values on a data base, but it's not working. In fact, I used to use a VM that is now dead. And when I switched to Xammp my program didn't work anymore.

  $titre = $_POST["titre"];
  $categorie = $_POST["categorie"];
  $portion = $_POST["portion"];
  $heure_cuiss = $_POST["heure_cuiss"];
  $minute_cuiss = $_POST["minute_cuiss"];
  $heure_prepa = $_POST["heure_prepa"];
  $minute_prepa = $_POST["minute_prepa"];
  $heure_rep = $_POST["heure_rep"];
  $minute_rep = $_POST["minute_rep"];
  $cuiss = $_POST["cuiss"];
  $cost = $_POST["cost"];
  $dif = $_POST["dif"];
  $histoire = $_POST["histoire"];
  $region = $_POST["region"];

  

  $temps = intval($heure_cuiss) + intval($minute_cuiss)/60 + intval($heure_prepa) + intval($minute_prepa)/60 + intval($heure_rep) + intval($minute_rep)/60;

  $query = $bdd -> prepare('INSERT INTO recette (titre, categorie, portion, heure_cuiss, minute_cuiss, heure_prepa, minute_prepa, heure_rep, minute_rep , cuiss, cost, dif, histoire, region, temps) 
                            VALUES(:titre, :categorie, :portion, :heure_cuiss, :minute_cuiss, :heure_prepa, :minute_prepa, :heure_rep, :minute_rep, :cuiss, :cost, :dif, :histoire, :region, :temps)');
  $query -> execute(array('titre'=>$titre, 'categorie'=>$categorie, 'portion'=>$portion, 'heure_cuiss'=>$heure_cuiss, 'minute_cuiss'=>$minute_cuiss, 'heure_prepa'=>$heure_prepa, 'minute_prepa'=>$minute_prepa, 'heure_rep'=>$heure_rep, 'minute_rep'=>$minute_rep, 'cuiss'=>$cuiss, 'cost'=>$cost, 'dif'=>$dif, 'histoire'=>$histoire, 'region'=>$region, 'temps'=>intval($temps)));

I get this error

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'portion, heure_cuiss, minute_cuiss, heure_prepa, minute_prepa, heure_rep, min...' at line 1 in C:\xampp\htdocs\ptut\upload\back-index.php:46 Stack trace: #0 C:\xampp\htdocs\ptut\upload\back-index.php(46): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\ptut\upload\back-index.php on line 46

I've tried to rewrite my database, to write my insert with '?' but nothing works. I've been working on this problem for 5 hours. I really need your help ! Thanks, Thomas

Upvotes: 0

Views: 1293

Answers (1)

Chlo fmk
Chlo fmk

Reputation: 26

Make sure your password is empty like this : $bdd = new PDO('mysql:host=localhost;dbname=yourDataBase', 'root', '');

Upvotes: 0

Related Questions