UNIX_TIMESTAMP Функция MySQL

0

Любая идея, почему это не работает? Я чувствую, что это имя строки, которое я дал. Это не эхо ничего

$result = mysql_query("SELECT UNIX_TIMESTAMP(datetime) FROM voters WHERE ip='$ip'") or die(mysql_error());

while($row = mysql_fetch_array($result)) {
   $unixtimestamp = $row['UNIX_TIMESTAMP(datetime)'];
   echo $unixtimestamp;
}
  • 0
    Каков результат этого кода?
Теги:
datetime
timestamp

2 ответа

2
Лучший ответ

Nevermind, datetime не является зарезервированным словом, но я по-прежнему настоятельно рекомендую не использовать его и выбирать лучшее имя столбца.:), но ниже все еще стоит.

Псевдоним столбца, упрощает его вывод в массиве позже:

$result = mysql_query("SELECT UNIX_TIMESTAMP(`datetime`) as voted_on FROM voters WHERE ip='$ip'") or die(mysql_error());

while($row = mysql_fetch_array($result)) {
    $unixtimestamp = $row['voted_on'];
    echo $unixtimestamp;
}

Должен работать.

  • 0
    Могу ли я спросить, почему я не должен использовать datetime? Просто из любопытства
  • 0
    DATETIME - это определение столбца при создании таблиц. Как таковой он может добавить путаницу и т. Д. Лучше избегать такого типа имен столбцов. IE строка для определения таблицы будет выглядеть так: datetime DATETIME NOT NULL, Выглядит странно, и если позже MySQL сочтет это зарезервированным словом (без подсказки, если это произойдет), это сломает ваше приложение.
Показать ещё 1 комментарий
1

Во-первых, я бы рекомендовал не использовать datetime в качестве имени столбца в mysql.

Если бы у меня было поле DATETIME с именем vote_time, я бы сделал это следующим образом:

SELECT UNIX_TIMESTAMP(vote_time) AS unix_vote_time FROM voters WHERE ip='$ip'

Затем вы получите доступ к нему через

$unixtimestamp = $row['unix_vote_time'];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню