Quizás lo más cercano a un método "directo" de obtener la información que quieres consiste en usar la sentencia SQL
la cual devuelve una serie de registros con información sobre las tablas de una base de datos determinada, incluyendo la hora de creación, actualización y consulta de cada tabla.
De esta forma, para obtener la hora más reciente de actualización de una base de datos en general, podrías recorrer las horas de actualización de cada tabla, y llevar el registro del valor más reciente. Por ejemplo:
Código PHP:
<?php
require_once 'DB.php'; // Usando el modulo DB de PEAR
// Parametros para conectarse con la base de datos
define ('BD_HOST', 'localhost');
define ('BD_USUARIO', 'nombre_usuario');
define ('BD_CONTRASENYA', 'contrasenya');
define ('BD_NOMBRE', 'nombre_base_de_datos');
$dsn = 'mysql://' . BD_USUARIO . ':' . BD_CONTRASENYA . '@' .
BD_HOST . '/' . BD_NOMBRE;
$db =& DB::connect ($dsn);
if (PEAR::isError ($db)) {
echo "No ha sido posible conectarse con la base de datos: " .
$db->getMessage ();
}
// Recibir los registros como una matriz asociativa
$db->setFetchMode (DB_FETCHMODE_ASSOC);
$filas = $db->getAll ('SHOW TABLE STATUS');
if (PEAR::isError ($filas)) {
echo "No ha sido posible consultar el status de la BD: " .
$db->getMessage ();
}
// Encontrar la hora de actualizacion mas reciente
$mas_reciente = 0;
foreach ($filas as $fila) {
// El campo con la informacion relevante se llama 'Update_time'.
// Las horas se devuelven en el formato "AAAA-MM-DD hh:mm:ss", asi que
// es conveniente convertirlo en un valor numérico único
// p.ej. con strtotime()
$hora_actualizacion = strtotime ($fila['Update_time']);
if ($hora_actualizacion > $mas_reciente)
$mas_reciente = $hora_actualizacion;
}
// La hora esta en formato marca de tiempo de Unix.
// Convertirla a un formato mas legible es posible con la funcion date()
echo 'La ultima actualizacion se hizo en ' . date ('r', $mas_reciente) . "\n";
?>
(nota que el segmento más importante del código es el ciclo
foreach, el resto del código simplemente se encarga de ejecutar la sentencia SQL "SHOW TABLE STATUS", que puedes lograr usando la familia de funciones mysql_* de PHP, o cualquier otro método.)
De otra forma, es posible también crear campos tipo TIMESTAMP en cada tabla, y verificar con ellos la hora de actualización en cada tabla. En la documentación de MySQL puedes encontrar información sobre los campos TIMESTAMP y cómo operan.