[RESOLU] PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation

Re: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation

par davlongin » 10 janv. 2023, 15:31

Merci ! Grâce à ton conseil j'ai être débloquer.

Bonne journée !
require("config/connexion.php");
    if(isset($_GET["pdt"])){
        // $data = array();
        // , array('id' => $_GET['pdt'])
        $req = $access->prepare('SELECT id FROM produits WHERE id=:id');
        $req->execute(array('id' => $_GET['pdt']));
        $req->fetchAll(PDO::FETCH_OBJ);
        echo"<br>";
        var_dump($req);

    }else{
        die("Vous n'avez pas sélectionné de produit à ajouter au panier");
    }
    var_dump($_GET);

Re: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation

par ynx » 10 janv. 2023, 14:20

Bonjour,

Le tableau des valeurs doit être passé dans la méthode execute() et non dans la méthode prepare()
Voir l'exemple #2 sur https://www.php.net/manual/fr/pdostatement.execute.php

PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation

par davlongin » 10 janv. 2023, 13:57

Bonjour,

Dans le WHERE à la place de mettre une variable ($_GET["pdt"] j'ai mis un drapeau (:id) et je dis ce qu'il doit mettre à la place de ce drapeau grâce au tableau que j'ai crée : array('id' => $_GET['pdt']).

Mais j'ai une erreur de syntaxe.
<?php
    require("config/connexion.php");
    if(isset($_GET["pdt"])){
        $data = array();
        $req = $access->prepare('SELECT id FROM produits WHERE id=:id', array('id' => $_GET['pdt']));
        $req->execute($data);
        $req->fetchAll(PDO::FETCH_OBJ);
        echo"<br>";
        var_dump($req);

    }else{
        die("Vous n'avez pas sélectionné de produit à ajouter au panier");
    }
    var_dump($_GET);

?>
Merci de bien vouloir m'aider SVP.