Foros del Web » Programando para Internet » PHP »

Logs Consultas Mysql

Estas en el tema de Logs Consultas Mysql en el foro de PHP en Foros del Web. Hi Alguien puede decirme como hago para grabar todas las consultas mysql que se hacen a un servidor como select, insert, update, delete. Estos datos ...
  #1 (permalink)  
Antiguo 07/03/2005, 09:49
Avatar de jordia  
Fecha de Ingreso: septiembre-2003
Ubicación: Cali
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Logs Consultas Mysql

Hi
Alguien puede decirme como hago para grabar todas las consultas mysql que se hacen a un servidor como select, insert, update, delete.
Estos datos los necesito grabar ya sea a un TXT o a una tabla

gracias
__________________
Jorgediaz.info
La felicidad esta en acortar la brecha entre tus sueños y la realidad!!
  #2 (permalink)  
Antiguo 07/03/2005, 10:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y .. usas alguna capa de abstracción de base de datos? .. o usas las funciones directas de Msyql? ...

La solución PHP sería que toda consulta SQL pasara por una función central .. que, entre otras cosas debería crear tu LOG hacia tu BD o txt o lo que gustes ...

algo tipo (en su base):

Código PHP:
function mi_query($sql,$link){
// haces tu registro de $sql que es tu consulta SQL donde gustes ...

// ejecutas tu consulta SQL:
mysql_query($sql,$link) or die (mysql_error());

y .. en lugar de usar directamente mysql_query() .. usas mi_query() .... en tus scripts .. esto y más es lo que hace una "capa de abastracción de BD" como AdoDB y muchas más que existen o podrías implementar tu mismo ...

Ahora, si quiers un "log" a nivel de servidor (para que registre todo ..incluso lo que tu aplicación PHP no controlaría) .. tendrías que ver en el "foro de Base de datos" por si hay alguna configuración para tal fin a nivel de Mysql y sus my.ini o similar.

Un saludo,
  #3 (permalink)  
Antiguo 09/03/2005, 07:59
Avatar de jordia  
Fecha de Ingreso: septiembre-2003
Ubicación: Cali
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
gracias cluster eso lo puedo hacer pero tengo un pequño problema, resulta que quiero meter la consulta sql a una bd me saca error como debo de hacer en la consulta sql para insertar:

Código PHP:
$sql UPDATE activos SET fecha='09,01,28,03,09,2005'activo=1,varu=Now(),sid='4f4b39053935fd102c5a24ffd5bb95e4' WHERE id=1
Esta es la consulta:

Código PHP:
mysql_query("INSERT INTO log (id, user, fecha, contenido, tipo) VALUES($val,$_SESSION[id],'$fec','$sql','$tipo')",$link) or die (mysql_error()); 
pero me sale el siguiente error:

Código HTML:
Algo está equivocado en su sintax cerca '09,01,28,03,09,2005', activo=1,varu=Now(),sid='4f4b39053935fd102' en la linea 1
yo creo que debe de ser por la comillas y todo el cuento que debo de hacer?

Gracias
__________________
Jorgediaz.info
La felicidad esta en acortar la brecha entre tus sueños y la realidad!!
  #4 (permalink)  
Antiguo 09/03/2005, 08:35
Avatar de jordia  
Fecha de Ingreso: septiembre-2003
Ubicación: Cali
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Me respondo a mi mismo.....
con la funcion

addslashes()


de todas maneras gracias
__________________
Jorgediaz.info
La felicidad esta en acortar la brecha entre tus sueños y la realidad!!
  #5 (permalink)  
Antiguo 09/03/2005, 08:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Puedes usar la función mysql_escape_string() para "escapar" caractereres tipo comillas (dobles o simples) que puedan dar problemas a Mysql .. (sería equivalente a usar addslassesh() ..)

Código PHP:
mysql_query("INSERT INTO log (id, user, fecha, contenido, tipo) VALUES($val,$_SESSION[id],'$fec','".mysql_escape_string($sql)."','$tipo')",$link) or die (mysql_error()); 
Si necesitas usar denuevo tu sentencia SQL ($sql) tendrás que usar stripslasshes() probablemente

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:32.