Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal tudo bem?
Estou precisando pegar a query executada pelo PDO
ex: SELECT * FROM users WHERE id = 5
Preciso disso para poder gerar um log
Obrigado a todos que ajudarem
Opa vlw pelo que eu vi no PDO não tem uma função nativa.
Vou adaptar com esses exemplos que você me passou.
Abraços
A única nativa que conheço é debugDumpParams, mas não sei se ajuda muito em seu caso.
Mas de uma olhada no link abaixo, tem uma função ai também ;)
http://php.net/manual/pt_BR/pdostatement.debugdumpparams.php#113400
<?php
function parms($string,$data) {
$indexed=$data==array_values($data);
foreach($data as $k=>$v) {
if(is_string($v)) $v="'$v'";
if($indexed) $string=preg_replace('/\?/',$v,$string,1);
else $string=str_replace(":$k",$v,$string);
}
return $string;
}
// Index Parameters
$string='INSERT INTO stuff(name,value) VALUES (?,?)';
$data=array('Fred',23);
// Named Parameters
$string='INSERT INTO stuff(name,value) VALUES (:name,:value)';
$data=array('name'=>'Fred','value'=>23);
print parms($string,$data);
?>
Segue alguns links
http://daveyshafik.com/archives/605-debugging-pdo-prepared-statements.html
http://forum.imasters.com.br/topic/426526-pegar-sql-depois-do-execute-no-pdo/
http://stackoverflow.com/questions/210564/getting-raw-sql-query-string-from-pdo-prepared-statements