Como dice masto en general, los marcadores de posición en el SQL no se reemplazan directamente con sus parámetros. El objetivo de SQL parametrizado es que el SQL con marcadores de posición se pase al motor de la base de datos para analizar una vez y luego solo recibe los parámetros.
Como notas idssl puede obtener el SQL de vuelta desde la instrucción o el identificador de conexión y también puede recuperar los parámetros desde ParamValues. Si no desea hacerlo usted mismo, puede usar algo como DBIx::Log4perl para registrar solo el SQL y los parámetros. Ver DBIX_L4P_LOG_DELAYBINDPARAM que da salida a algo como esto:
DEBUG - prepare(0.1): 'insert into mje values(?,?)'
DEBUG - $execute(0.1) = [{':p1' => 1,':p2' => 'fred'},undef];
Por supuesto, ya que utiliza Log :: Log4perl se puede omitir el "Test -" si lo desea. Hay un pequeño tutorial para usar DBIx :: Log4perl here.
Debería poder usar DBIx :: Log4perl con cualquier DBD y si por algún motivo no puede RT y lo veré.
Si no quiere ir con DBIx :: Log4perl y las opciones de rastreo de DBI no se ajustan a sus necesidades, puede escribir devoluciones de llamada para los métodos de preparación/selección */ejecución de DBI y recopilar lo que quiera en ellos.
posible duplicado de [¿Cómo puedo hacer que DBI registre todas las consultas, incluidos los parámetros?] (Http://stackoverflow.com/questions/19703521/how-can-i-make-dbi-log-all-queries-including- params) – Jake
@Jake esta pregunta fue hecha 4 años antes de la otra pregunta, también esta pregunta tiene mejores respuestas, (en mi opinión). Es por eso que he marcado la otra pregunta como el duplicado y el candidato para el cierre. – aidan