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

Zend_Db PHP Discussion :

[Zend 1.12] Access violation


Sujet :

Zend_Db PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Zend 1.12] Access violation
    Bonjour,

    j'ai actuellement un problème de requete avec zend, ma requete fonctionne dans phpmyadmin mais pas quand je l'exécute avec zend_db.

    Voici ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `foo` SET `FooIsActive` = 0 WHERE `FooID` = 140
    Et mon erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >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 'UPDATE `foo` SET `FooIsActive` = 0 WHERE `FooID` = 140') LIMIT 1' at line 1
    Ça fait plusieurs jour que je l'ai et je ne comprend pas.

    Pouvez vous m'aider ?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2012
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2012
    Messages : 552
    Points : 979
    Points
    979
    Par défaut
    comment utilises-tu cette requête avec la classe Zend_Db?
    sachant qu'avec Zend_Db les variables de type entier dans une requête doivent être protégées en les castant en entier.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé deux méthodes, la construire avec Zend_Db en utilisant la méthode update, et en exécutant directement ma requête écrite a la main dans un fetchRow()

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2012
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2012
    Messages : 552
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par Sqwak Voir le message
    J'ai essayé deux méthodes, la construire avec Zend_Db en utilisant la méthode update, et en exécutant directement ma requête écrite a la main dans un fetchRow()
    non tu ne peux pas construire une requête update avec fetchRow() car cette méthode n'utilise qu'une requête de type SELECT.

    Avec Zend_Db, je n'ai pas d'informations sur ton code source pour pouvoir donner mon avis.!!

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Mon code est tout simple, c'est bien mon problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $where = $this->getAdapter()->quoteInto("FooID = ?",  $fooID);
    db->update( 'foo',  "FooIsActive = 0", $where );

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2012
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2012
    Messages : 552
    Points : 979
    Points
    979
    Par défaut
    la méthode update() prend un tableau comme 2ème paramètre:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $array = array("FooIsActive"=> 0);
    $where='FooID ='.(int) $fooID; //conversion en int
    $db->update( 'foo',  $array , $where );

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Oui c'est bien ça.

    Merci beaucoup.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Depuis EDI DELPHI : Access Violation
    Par powerlog dans le forum EDI
    Réponses: 1
    Dernier message: 03/08/2005, 17h59
  2. Access violation avec fseek
    Par baleine dans le forum C
    Réponses: 7
    Dernier message: 18/03/2005, 17h41
  3. Réponses: 7
    Dernier message: 22/02/2005, 14h07
  4. [DELPHI][PROECEDURES STOCKES] Access violation
    Par All Jinx dans le forum Bases de données
    Réponses: 6
    Dernier message: 14/05/2004, 16h57
  5. Réponses: 3
    Dernier message: 22/05/2002, 10h37

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