weedo tech blog

le blog technique de la team weedo

  • Home
  • Ka on twitter
    • Edit
    • Delete
    • Tags
    • Autopost

    bug php pdo prepare execute query

    Je suis tombé sur un bug PDO qui m'a fait perdre beaucoup de temps :

    J'avais cette requête :

    $query = $pdo->prepare($sql);
    $result = $query->execute();
    if ($result === false) {
        var_dump($result);
        echo $pdo->errorCode();
        var_dump($pdo->errorInfo());
    }

    J'obtenais :

    (bool)false
    00000
    Array() /* c'est à dire tableau vide, pas de message d'erreur */

    execute() échouait mais sans code ni message d'erreur

    J'ai remplacé mon code par :

    $result = $pdo->query($sql);
    if ($result === false) {
        var_dump($result);
        echo $pdo->errorCode();
        var_dump($pdo->errorInfo());
    }

    Et là j'ai eu mon message erreur :

    (bool)false
    00000
    [0] => 42S02
    [1] => 1146
    [2] => Table 'xxxx' doesn't exist

    Conclusion, si votre prepare()/execute() ne fonctionne pas sans message d'erreur, remplacez le temporairement par un query() qui sera peut-être plus bavard.

    [EDIT] Ce bug est le même que celui décrit ici : https://bugs.php.net/bug.php?id=37285

    K.

    • 30 June 2011
    • Views
    • 1 Comment
    • Permalink
    • Favorited 0 Times
    • Tweet
    • Tweet

    Comments 1 Comment

    Mar 14, 2012
    balap said...
    Pour un prepare execute, l'objet sur lequel porte l'erreur est PDOStatement, il faut utiliser la méthode errorInfo sur l'objet query
    Je suis tombé sur un bug PDO qui m'a fait perdre beaucoup de temps :

    $query = $pdo->prepare($sql);
    $result = $query->execute();
    if ($result === false) {
    var_dump($result);
    echo $pdo->errorCode();
    echo $query->errorCode();
    var_dump($pdo->errorInfo());
    }

    Leave a Comment

  • About Karim Cassam Chenaï

    My Google Profile

  • Contributors

    • Ballut Vincent
    • fix
    • Karim Cassam Chenaï
  • Subscribe

    Subscribe to this posterous
    Unsubscribe
    Follow this posterous RSS
    You're a contributor here (Edit)
    This is your Space (Edit)
    Follow by email »
    Get the latest updates in your email box automatically.
  • Follow Me

      Delicious

Theme created for Posterous by Obox