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.
1 Comentarios
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.