Récupérer la dernière requete éxécutée avec PDO

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 : Récupérer la dernière requete éxécutée avec PDO

par jb084 » 15 juin 2006, 17:29

Je confirme: cette fonction lui est inconnue :/

Bon ben tant pis sinon, ca doit pas être possible.

par jb084 » 15 juin 2006, 17:27

__tostring ? Je ne la vois pas dans ses caractéristiques...Je vais essayer ca de suite.

par jeff » 15 juin 2006, 17:25

desolé j'avais pas compris ,
ce que tu veut voir c'est la requete avec les parametres
je ne sais pas nom plus la recupéré mais tu peut toujours essayé de redefinir la methode __toString de pdo
[/php]

par jb084 » 15 juin 2006, 17:04

J'avais essayé un print_r dessus, et cela donne le même résultat. Cela me renvoie

Code : Tout sélectionner

object(PDOStatement)#5 (1) { ["queryString"]=> string(34) "DELETE FROM testqddb WHERE id= :id" }

par jeff » 15 juin 2006, 16:57

tente
if ($sth->execute($arrWhere)){
var_dump($sth);
          return 1;
        } 

par jb084 » 15 juin 2006, 16:38

Code : Tout sélectionner

try{ $query="DELETE FROM ".$tablename." WHERE ".$sqlWhere; $sth = $this->v["pdoDB"]->prepare($query); if ($sth->execute($arrWhere)){ return 1; } else{ if ($this->v["debug"]==1){ $arrError = $sth->errorInfo(); throw new QDException ("<b>Erreur SQL ".$arrError[0]."</b> : ".$arrError[2] ." <br> Lors de la requête : <i>".$query."</i>"); } else return -1; } } catch(PDOException $e){ throw new QDException("-1", $e->getMessage(), $e->getFile(), $e->getLine(), -1, $e->getTrace()); } catch(Exception $e){ throw new QDException("-1", $e->getMessage(), $e->getFile(), $e->getLine(), -1, $e->getTrace()); }
Voial par exemple ma fonction Delete. Une fois que je fais mon "execute", je voudrais avoir accés à la requete réelement executée, pour faire un log par exemple.
Cette fonction recevant une requete parametrée (donc avec des "?" à la place des valeurs), que je complete lors de l'execution avec le tableau arrWhere, donc elle n'est pas complete.

par jeff » 15 juin 2006, 16:27

salut
a tu un petit bout de code, parce que c'est pas tres clair, sinon tu peut faire un dump sur l'objet PDOStatement

Récupérer la dernière requete éxécutée avec PDO

par jb084 » 15 juin 2006, 16:06

Bonjour à tous.

J'utilise PDO pour interfacer avec ma BD (mysql pour l'instant). J'utilise donc 'prepare' pour préparer ma requete, puis je fais des bindParam pour insérer mes paramètres, et enfin un 'execute'.

Malheureusement, je ne peux pas savoir exactement la requête qui est executée : la seule requete que je récupére est celle parametrée, c'est à dire avant de lui passer les paramètres.

Savez vous s'il existe un moyen pour la récupérer ?

Merci d'avance :)