PHP

Erreur de syntaxe près de ')'

Résolu

Bonjour,


Voici mon erreur :

( ! ) Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ')' à la ligne 1 in C:\wamp64\www\monsite\voirprofil.php on line 51



Voici mon code :

<?php




  session_start();




  require_once('./donnes/basededonnes.php');




  $utilisateurnomcomplet = (int) trim($_GET['id']);







  if(empty($utilisateurnomcomplet)){

   header('Location: membres.php');

   exit;

  }




  $req = $BDD->prepare("SELECT u.*, q.nomquartier

  FROM utilisateur u

  INNER JOIN quartier q ON q.numquartier = u.quartier WHERE id = ?");




  $req->execute(array($utilisateurnomcomplet));




  $voirutilisateur = $req->fetch();




  if(!isset($voirutilisateur['id'])){

    header('Location: membres.php');

    exit;

  }




  function age($date){

    $age = date('Y') - date('Y', strtotime($date));

    if(date('md') < date('md', strtotime($date))){

    return $age - 1;

  }

  return $age;

}




if(!empty($_POST)){

 extract($_POST);

 $valide = (boolean) true;

 if(isset($_POST['userajouter'])){

  $req = $BDD->prepare("SELECT id FROM relation WHERE (id_receveur = ? AND id_demandeur = ?) OR (id_receveur = ? AND id_demandeur = ?)");

  $req->execute(array($voirutilisateur['id'], $_SESSION['id'], $_SESSION['id'], $voirutilisateur['id']));

  

  $verifrelation = $req->fetch();

  

  if(isset($verifrelation['id'])){

    $valide = false;

  }

  if($valide){




   $req = $BDD->prepare("INSERT INTO relation (id_demandeur, id_receveur, statut) VALUES (?, ?, ?,)");

   $req->execute(array($_SESSION['id'], $voirutilisateur['id'], 1));

   echo 1;exit;

  }

   echo 1;exit;

   header('Location: voirprofil.php?id=' . $voirutilisateur['id']);

}elseif(isset($_POST['usersupprimer'])){

  echo 2;exit;

 }elseif(isset($_POST['userbloquer'])){

  echo 3;exit;

 }

}







?>

<!DOCTYPE html>

<html lang="fr">

<head>

 <meta charset="UTF-8">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

 <link rel="stylesheet" href="./donnes/styles.css">




 <title>Profil de <?= $voirutilisateur['nomcomplet'] ?></title>

</head>

<body>




 <?php

   require_once('navbar.php')

 ?>




  <div class="container">

    <div class="row">

    <div class="col-sm-12">

      <div class="affichemembre">

        <div>

         Nom : <?= $voirutilisateur['nomcomplet'] ?>

        </div>

        <div>

         Age : <?= age($voirutilisateur['datedenaissance']) ?> ans

        </div>

        <div>

         Quartier : <?= $voirutilisateur['nomquartier'] ?>

        </div>

      </div>

      <div>

        <form method="POST">

          <input type="submit" name="userajouter" value="Ajouter">

          <input type="submit" name="usersupprimer" value="Supprimer">

          <input type="submit" name="userbloquer" value="Bloquer">

        </form>

      </div>

    </div> 

   </div>

  </div>













<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>

<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

 

 

</body>

</html>
345 vues
16 novembre 2023 à 4:02 (Édité)
Cette pub permet au site de vivre ...

1 commentaire

Bonsoir @grosbonnet2,


J'aurai préféré une touche de politesse dans ton message, mais bon on va se contenter de ton titre (J'ai des problèmes).


Ton code d'erreur est très précis. Je ne vois pas trop la difficulté du debug 🤔


( ! ) Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ')' à la ligne 1 in C:\wamp64\www\monsite\voirprofil.php on line 51.


Si on décompose ton erreur, il y a près d'une parenthèses fermante une erreur de syntaxe. Souvent c'est soit une virgule en trop, soit un point virgule manquant. Wamp te dit à la ligne 1 (ce n'est pas ton cas) mais ensuite à la fin de l'erreur il t'indique "on line 51" (plus logique).


Tu nous a mis tout ton code 😓

J'ai donc parcouru tout ton code pour essayer de voir la ligne 51 🤣


Donc pour moi l'erreur se trouve ici :

$req = $BDD->prepare("INSERT INTO relation (id_demandeur, id_receveur, statut) VALUES (?, ?, ?,)");


Voici la correction :

$req = $BDD->prepare("INSERT INTO relation (id_demandeur, id_receveur, statut) VALUES (?, ?, ?)");

(une virgule en trop et c'est bien à côté d'une parenthèse fermante 🥲)


La prochaine fois, prend le temps de lire l'erreur. En revanche, en point positif, j'aime bien le fait que tu mettes des echo 1;exit; pour debugger. C'est une bonne pratique 🙂


Bon dimanche ✌️

Florent.


Cette pub permet au site de vivre ...