在我的页脚,我想添加一些东西,如“上次更新xx/xx/200x”,这个日期是最后一次某个mySQL表已更新。

最好的方法是什么?是否有检索最近更新日期的函数?每次需要这个值时,我都应该访问数据库吗?


当前回答

这就是我所做的,希望能有所帮助。

<?php
    mysql_connect("localhost", "USER", "PASSWORD") or die(mysql_error());
    mysql_select_db("information_schema") or die(mysql_error());
    $query1 = "SELECT `UPDATE_TIME` FROM `TABLES` WHERE
        `TABLE_SCHEMA` LIKE 'DataBaseName' AND `TABLE_NAME` LIKE 'TableName'";
    $result1 = mysql_query($query1) or die(mysql_error());
    while($row = mysql_fetch_array($result1)) {
        echo "<strong>1r tr.: </strong>".$row['UPDATE_TIME'];
    }
?>

其他回答

这就是我所做的,希望能有所帮助。

<?php
    mysql_connect("localhost", "USER", "PASSWORD") or die(mysql_error());
    mysql_select_db("information_schema") or die(mysql_error());
    $query1 = "SELECT `UPDATE_TIME` FROM `TABLES` WHERE
        `TABLE_SCHEMA` LIKE 'DataBaseName' AND `TABLE_NAME` LIKE 'TableName'";
    $result1 = mysql_query($query1) or die(mysql_error());
    while($row = mysql_fetch_array($result1)) {
        echo "<strong>1r tr.: </strong>".$row['UPDATE_TIME'];
    }
?>

对于最近的表更改列表,使用这个:

SELECT UPDATE_TIME, TABLE_SCHEMA, TABLE_NAME
FROM information_schema.tables
ORDER BY UPDATE_TIME DESC, TABLE_SCHEMA, TABLE_NAME

如果您正在运行Linux,您可以使用inotify来查看表或数据库目录。inotify可以从PHP, node.js, perl和大多数其他语言中获得。当然,你必须安装inotify或让你的ISP安装它。很多ISP不会这么做。

当查询不可用时,将查询缓存在全局变量中。

创建一个网页,在更新缓存时强制重新加载缓存。

将对重新加载页面的调用添加到部署脚本中。

a)它会显示你所有的表和最近的更新日期

SHOW TABLE STATUS FROM db_name;

然后,你可以进一步询问具体的表格:

SHOW TABLE STATUS FROM db_name like 'table_name';

b)在上面的例子中,你不能在'Update_time'上使用排序,但是使用SELECT你可以:

SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA='db_name' ORDER BY UPDATE_TIME DESC;

要进一步询问特定的表:

SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA='db_name' AND table_name='table_name' ORDER BY UPDATE_TIME DESC';