Почему мой MySQL TIMESTAMPDIFF не работает?

Здравствуйте, у меня есть сохраненная временная метка «oldtime», и я хочу получить разницу с текущим временем, но она не работает и не выдает никаких ошибок, так что я в растерянности.

$timediff = mysql_query(sprintf("SELECT TIMESTAMPDIFF(SECOND, %s, NOW())", GetSQLValueString($oldtime, "text")), $DBName) or die (mysql_error());

$diff = mysql_fetch_assoc($timediff);

echo '<script>console.log("time diff:'.$diff[0].'");</script>';

.$diff. results in "time diff:Array"
.$diff[0]. results in "time diff: "
.$timediff. results in "time diff:Resource id #6"

1

Решение

mysql_fetch_assoc по умолчанию возвращает массив, проиндексированный по имени столбца, а не по номеру столбца.

Имя столбца будет буквально строкой функции, что-то вроде

TIMESTAMPDIFF(table.col1, NOW())

Более простым способом здесь будет выборка по номеру столбца вместо использования mysql_fetch_row или mysql_fetch_array

Увидеть:
http://php.net/manual/en/function.mysql-fetch-array.php
http://php.net/manual/en/function.mysql-fetch-array.php

Альтернативой может быть использование некоторой функции массива для извлечения элементов без имени, см .:
http://php.net/manual/en/ref.array.php

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]