【问题标题】:PHP - SQL query to get update time from table statusPHP - 从表状态获取更新时间的 SQL 查询
【发布时间】:2010-03-28 05:05:33
【问题描述】:

这是我的 php 代码(我已经连接到数据库):

$result = mysql_query("SHOW TABLE STATUS FROM mydb LIKE 'mytable';");
     while ($array = mysql_fetch_array($result)) {
          $updatetime = $array['Update_time'];
     }

echo $updatetime;

我明白了:

警告:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源。

我正在运行 MySQL 5.0.89 和 PHP5。

我不想在表格中添加新字段...我想使用表格状态...

有什么帮助吗?

谢谢!

【问题讨论】:

    标签: php wordpress mysql


    【解决方案1】:

    警告:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源。

    您没有向mysql_fetch_array 提供正确 资源。另外,我相信您的$array$result 变量混淆了,请注意我将在下面解释的my_database 参考。

    $array = mysql_query("SHOW TABLE STATUS FROM my_database;"); <--here
         while ($array = mysql_fetch_array($result)) { <--$result is undefined.
    

    应该改为

    $result = mysql_query("SHOW TABLE STATUS FROM my_database;");
         while ($array = mysql_fetch_array($result)) {
              $updatetime = $array['Update_time'];
         }
    
    echo $updatetime;
    

    到目前为止,您的 MySQL 语法对于 SHOW TABLE STATUS 不正确,您需要在 FROM 子句之后引用您的数据库。

    【讨论】:

    • 我是重新输入而不是复制/粘贴,但我确实按照您在此处指出的方式进行了操作。结果相同。
    • 您可以编辑您的问题并发布您正在使用的代码吗?
    【解决方案2】:

    show table status from 后面应该跟数据库名而不是表名:

    SHOW TABLE STATUS FROM <DATABASE NAME>
    

    此外,每次执行查询时,都应该在继续使用结果对象之前检查其返回值。

    $res= mysql_query("SHOW TABLE STATUS FROM DB;");
    if(! $res) {
     die('Query failed'.mysql_error());
    }
    

    【讨论】:

      【解决方案3】:

      表更新时间必须取自表字段。

      【讨论】:

        【解决方案4】:

        想通了。不确定这是否是完美的方法,但它确实有效......

        $result = mysql_query("SHOW TABLE STATUS FROM mydb LIKE 'mytable';");
        foreach ($result as $data) {
            $updatetime = $data->Update_time;
        }
        
        echo $updatetime;
        

        然后您可以使用 substr 解析原始时间戳。

        附:当我为 Wordpress 执行此操作时,我包含了专门用于在 Wordpress DB 中工作的代码...

        global $wpdb;
        define('FOO_TABLE', $table_prefix."footable");
        
        $result = $wpdb->get_results("SHOW TABLE STATUS LIKE '".FOO_TABLE."';");
        foreach ($result as $data) {
          $updatetime = $data->Update_time;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-01
          • 2021-07-21
          • 1970-01-01
          • 2020-06-10
          • 1970-01-01
          • 1970-01-01
          • 2019-07-27
          • 2022-06-19
          相关资源
          最近更新 更多