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
    [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é
    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
    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é
    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
    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é
    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
    Oui c'est bien ça.

    Merci beaucoup.

    Cordialement.

###raw>template_hook.ano_emploi###