PHP - 用于从表状态获取更新时间的SQL查询

时间:2010-03-28 05:05:34

标签: php wordpress mysql

这是我的php代码(我已经连接到db了):

$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。

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

任何帮助?

谢谢!

4 个答案:

答案 0 :(得分:2)

  

警告: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;

截至目前,关于SHOW TABLE STATUS您需要在FROM子句后引用数据库的MySQL语法不正确。

答案 1 :(得分:0)

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());
}

答案 2 :(得分:0)

表格更新时间必须从表格字段

中获取

答案 3 :(得分:0)

想出来。不确定这是否是完美的方式,但它有效...

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

echo $updatetime;

然后,您可以使用substr。

解析原始时间戳

P.S。正如我在为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;
}