Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou convertendo meu site do MySQL para o PDO e cai num problema.
Quando quero fazer qualquer coisa no banco, chamo uma função SQL que executa a query e também armazena numa tabela de log a query executada.
Só que lá esta registrando a query como "select * from tabela where id=? and nome=?".
Como posso alterar os ? pelo dados do array que paço como argumento da função SQL?
Saquei. Eu estou usando o is_string mas agora o problema é que todos os campos do array estão vindo como string :(
Uma coisa que você pode fazer é centralizar as chamadas do PDO em uma classe/método próprio e lá fazer o debug usando uma das funções que os usuários contribuíram lá nos comentários do link que te passei.
Blz. Já criei uma função que corrigiu isso. Se alguém quiser... ^^
Se você tiver acesso aos logs do MySQL no teu server:
http://dev.mysql.com/doc/refman/5.1/en/query-log.html
Usando somente o PDO:
http://php.net/manual/en/pdostatement.debugdumpparams.php
Neste link do PDO nos comentários tem funções de usuários que contriuiram que mostra como trocar os placeholders pelos valores informados.
Ou usando triggers (para INSERT, DELETE e UPDATE), mas teria que ser especifica para cada tabela também.
@braços