SQL trace - Userlinux.net

SQL trace: David explains us how to trace SQL queries in a very interesting post. Recommended. ...

votar

SQL trace

  • es
Traceando consultas SQL
Rating
David explains us how to trace SQL queries in a very interesting post. Recommended.
 
Archived on : development

1 Comments

gravatar
04.Jun.2009
Y yo digo, ¿hay que meter el comentario en cada consulta, manualmente? Pues si utilizamos una envoltura para las consultas podemos utilizar la reflexión de clases (PHP5) para sacar estos datos automáticamente y generar consultas con estos comentarios (por cierto, funcionará en MySQL 4?):

class VerClientes extends Modelo {
Dao::getClientes(this);
}

class Dao {
public function getClientes($llamada) {
new Consulta("SELECT * FROM usuarios", llamada);
}
}

class Consulta {
public __construct($sql, $llamada) {
mysql_query($sql . "/*" . operaciones con $llamada);
}
}

En PHP4 podría hacerse una pequeña chapucilla: para conocer el archivo y el número de línea,

a) Se crea un tipo de error llamado TRAZA_SQL, por ejemplo
b) En la envoltura para consulta SQL (orientado a objetos o no) se lanza *siempre* un error tal que trigger_error("", TRAZA_SQL);
c) Se captura el error poniendo estableciendo al principio del documento un manejador (set_error_handler()), añadiendo la información de traza a la consulta SQL (habría que hacer parsear un poquito la consulta)

Cuando tenga tiempo lo probaré, es un hack interesante para el log de consultas lentas y/o que causan error, y me gusta la idea, pero meter manualmente esos comentarios (sobre todo el número de línea, que puede variar mucho) me parece muuuy aburrido.

Un abrazo.

Leave a comment

Your name
Your email
Your web
  « Captcha

[ Userlinux 2001 ~ 2010 | Feeds ]