PHP - SQL-запрос для получения времени обновления из статуса таблицы - PullRequest
0 голосов
/ 28 марта 2010

Это мой 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.

Я не хочу добавлять новое поле в таблицу ... Я хочу использоватьстатус таблицы ...

Любая помощь?

Спасибо!

Ответы [ 4 ]

2 голосов
/ 28 марта 2010

Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL.

Вы не предоставили right ресурс 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.

0 голосов
/ 28 марта 2010

Разобрался. Не уверен, что это идеальный способ, но он работает ...

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

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;
}
0 голосов
/ 28 марта 2010

Время обновления таблицы должно быть взято из поля таблицы только .

0 голосов
/ 28 марта 2010

За показом статуса таблицы из следует имя базы данных, а не имя таблицы:

SHOW TABLE STATUS FROM <DATABASE NAME>

Кроме того, каждый раз, когда вы выполняете запрос, вы всегда должны проверять его возвращаемое значение, прежде чем начинать использовать объект результата.

$res= mysql_query("SHOW TABLE STATUS FROM DB;");
if(! $res) {
 die('Query failed'.mysql_error());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...