Как проверить наличие пин кода в базе данных и срок его действия?

В базе данных в таблице pin_code храню пин коды, дату создания и дату завершения действия пин кода.

mysql> SELECT * FROM pin_code;
+----------+----------------+---------------------+----------------+
| id       | code           | create_date         | destroy_date   |
+----------+----------------+---------------------+----------------+
|        1 | 6194027126     | 1605500754          | 1607500754     |
|        2 | 5807462325     | 1607808551          | 1609508551     |
+----------+----------------+---------------------+----------------+

PHP

$visit = time(); // текущее время
$result = mysqli_query( $link, "SELECT * FROM pin_code WHERE code=5807462325 AND destroy_date>$visit;" ); // дата завершения срока действия пин кода должна быть больше текущей
echo mysqli_num_rows( $result );

Все пин коды имеют уникальные значения.

Не получается корректно проверить из PHP скрипта наличие пин кода в базе и определить действителен код или его время истекло (create_date - дата создания кода, destroy_date - дата завершения срока действия пин кода).

Как выполнить проверку максимально просто и быстро?

Нужно получить статусы:

  • пин код есть или нет

  • пин код действителен или просрочен (если он есть в таблице)

Еще хочу поинтересоваться, нет ли смысла хранить даты в базе в другом формате?

Спасибо!

p.s. Похоже я просто пытаюсь найти действующий пин код, а не проверить его на существование и срок действия.


Ответы (1 шт):

Автор решения: DrMcSheen

Вот твоя ошибка

AND destroy_date>$visit;"

Сделай так

AND destroy_date>'$visit'"

Формат даты для этой задачи самый подходящий, не меняй.

Похоже я просто пытаюсь найти действующий пин код, а не проверить его на существование и срок действия

А в чём разница?

→ Ссылка