yo hago esto:
primero creo una tabla llamada "logs" con los siguietnes campos
id INT PK AUTOINCREMENT
what VARCHAR(100) // que hizo
who INT // id de quien lo hizo
where VARCHAR(15) // IP de donde se hizo
when DATETIME // Cuando se hizo
luego en un archivo de coneccion por ejemplo coneccion.php (el mismo que usas para conectarte), agregas esta función:
Código PHP:
function mysql_log_query($query){
$action=strtoupper(substring($query,0,strpos($query," "))); //tomas la primera palabra de la query en mayuscula
if($action=="INSERT" or $action=="UPDATE" or $action=="DELETE"){ // en los casos ponemos todos los eventos que tengan relacion con modificaciones en la BD
// en ese ejemplo he usado insertar, actualizar y eliminar, pero puedes agregar más
$save=str_replace("'"," ",$query);
mysql_query("INSERT INTO logs VALUES ('','".$save."','".$_SESSION['usuario']."','".$_SERVER['REMOTE_ADDR']."',NOW());");
// guardas en la tabla log esta acción, fijate que la query se guarda sin comillas, se guarda el usuario, su ip y la fecha-hora actual
}
return mysql_query($query); // y por supuesto tenemos que ejecutar la consulta
}
ahora cada vez que quieras hacer una sentencia sql en vez de poner mysql_query pones mysql_log_query
por ejemplo:
mysql_log_query("UPDATE tabla SET x=1 WHERE y=2");
guardara en tu log esto:
ID: 1
what: UPDATE tabla SET x=1 WHERE y=2
who: (mi id)
where: 127.0.0.1
when: 2011-06-15 10:49:25
te lo recomiendo, de este modo no solo tendrás registros de cada acción, también podrás filtrar las consultas si quieres y agregar mas seguridad :)