IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur louche : 'SQLSTATE[42000]: Syntax error or access violation: 1064'


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Erreur louche : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Bonjour à tous,

    Voilà, je triture le code depuis 3 jours sur un problème de modification des valeurs d'une table.
    Ci-dessous, deux fonctions: l'une marche, l'autre pas...
    Je n'ai pas d'erreur PHP en logs.
    Tout d'abord l'erreur...
    ( ! ) Fatal error: Uncaught exception 'PDOException' with message '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 'WHERE ID = '7'' at line 6' in Z:\www\admin\modif_pack.php on line 21
    ( ! ) PDOException: 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 'WHERE ID = '7'' at line 6 in Z:\www\admin\modif_pack.php on line 21
    Call Stack
    # Time Memory Function Location
    1 0.0008 675464 {main}( ) ..\index.php:0
    2 0.0164 733120 include( 'Z:\www\admin\modif_pack.php' ) ..\index.php:67
    3 0.0164 735456 PDOStatement->execute( ) ..\modif_pack.php:21
    Je ne suis pas particulièrement doué, et je dois avoir perdu mes lunettes. car je ne pige plus rien. le code est le suivant :

    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
    if(isset($_POST['submit'])){
    	$reqInscription = "UPDATE packs SET 
    			nombre = :nombre,
    			offert = :offert,
    			prix = :prix,
    			parrain = :parrain,
    		WHERE ID = :ID";
    	$resInscription = $dbh->prepare($reqInscription, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
     
    	$resInscription->execute(array(
    		'nombre' => $_POST['nombre'],
    		'offert' => $_POST['offert'],
    		'prix' => $_POST['prix'],
    		'parrain' => $_POST['parrain'],
    		'ID' => $_GET['id']
    	));
    Pour le meme type de requete, j'ai un autre code qui lui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $stmt = $dbh->prepare("UPDATE news SET 
    				texte = :texte, 
    				titre = :titre 
    			WHERE id = :id");
     
    			$stmt->execute(array(
    				'texte' => $_POST['tMCE_news'],
    				'titre' => $_POST['titre'],
    				'id' => $_GET['id']
    			));

    la deuxième fonctionne, pas la première. Et je ne comprends pas...
    Si ça se trouve il y a un truc gros comme un iceberg, mais je ne vois pas.
    Je vous livre aussi la structure de la table :

    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
    --
    -- Structure de la table `packs`
    --
     
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `nombre` int(11) NOT NULL,
      `offert` int(11) NOT NULL,
      `prix` double NOT NULL,
      `parrain` int(11) NOT NULL,
       PRIMARY KEY (`ID`)
     
    --
    -- Structure de la table `news`
    --
     
      `id` int(12) NOT NULL AUTO_INCREMENT,
      `titre` varchar(200) COLLATE latin1_general_ci NOT NULL,
      `texte` longtext COLLATE latin1_general_ci NOT NULL,
      `date_ecriture` datetime NOT NULL,
      PRIMARY KEY (`id`)

    D'avance merci !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Points : 14
    Points
    14
    Par défaut Virgule en trop?
    Salut,

    Le message signal une erreur de syntaxe mysql.

    Je ne sais pas si c'est ça, mais tu as une virgule de trop après parrain = :parrain,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reqInscription = "UPDATE packs SET 
    			nombre = :nombre,
    			offert = :offert,
    			prix = :prix,
    			parrain = :parrain,
    		WHERE ID = :ID";

Discussions similaires

  1. [PDO] SQLSTATE[42000]: Syntax error or access violation: 1064
    Par martin30200 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/11/2014, 11h45
  2. Réponses: 2
    Dernier message: 12/05/2014, 16h32
  3. [MySQL] Erreur SQL : SQLSTATE[42000]: Syntax error or access violation: 1064
    Par petit.quent dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/12/2011, 16h13
  4. [MySQL] [MySQL] SQLSTATE[42000]: Syntax error or access violation: 1064
    Par Domotik35 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/07/2011, 16h42
  5. [PDO] Erreur incompréhensible : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par cyril_k dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/12/2008, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo