2010-03-28 77 views
0

得到更新時間這是我的PHP代碼(我已經有到數據庫的連接):PHP - SQL查詢從表狀態

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

我不想一個新字段添加到表......我想用表狀態...

任何幫助嗎?

謝謝!

回答

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

截至目前,你的MySQL語法不問候你需要你FROM條款後,引用您的數據庫SHOW TABLE STATUS正確。

+0

我重新鍵入,而不是複製/粘貼,但我確實有它,你指出它的出路這裏。同樣的結果。 – Tribalcomm 2010-03-28 05:15:56

+0

你能編輯你的問題併發布你正在使用的代碼嗎? – 2010-03-28 05:16:53

+0

它已更新以反映您的建議並正確編碼 – Tribalcomm 2010-03-28 05:34:09

0

show table status從應遵循的數據庫名稱不是表名:

SHOW TABLE STATUS FROM <DATABASE NAME> 

而且每次執行一個查詢的時候,你應該總是在你繼續前進,開始使用結果對象之前檢查它的返回值。

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

他正在使用數據庫名稱。 – 2010-03-28 05:37:23

0

表更新時間必須從表中的字段服用。