在 pin_code 表中的数据库中,我存储了 pin 码、创建日期和 pin 码完成日期。
MySQL
mysql> SELECT * FROM pin_code;
+----------+----------------+---------------------+----------------+
| id | code | create_date | destroy_date |
+----------+----------------+---------------------+----------------+
| 1 | 6194027126 | 1605500754 | 1607500754 |
| 2 | 5807462325 | 1607808551 | 1609508551 |
+----------+----------------+---------------------+----------------+
`create_date` int UNSIGNED NOT NULL DEFAULT '0',
`destroy_date` int UNSIGNED NOT NULL DEFAULT '0'
PHP - 如果密码可用且日期未过期,我会收到回复。
//MySqli Select Query
$results = $mysqli->query("SELECT * FROM pin_code WHERE code=5807462325 AND destroy_date > unix_timestamp(now())"); // destroy_date - дата завершения срока действия пин кода должна быть больше текущей
print '<table border="1">';
while($row = $results->fetch_assoc()) {
print '<tr>';
print '<td>'.$row["id"].'</td>';
print '<td>'.$row["code"].'</td>';
print '<td>'.$row["create_date"].'</td>';
print '<td>'.$row["destroy_date"].'</td>';
print '</tr>';
}
print '</table>';
所有密码都有唯一值
无法从 PHP 脚本正确检查数据库中是否存在 PIN 码并确定该代码是否有效或其时间是否已过期(create_date - 代码创建日期,destroy_date - PIN 的过期日期代码)。
您需要获取状态:密码是否存在,密码是否有效(如果有)或已过期。
帮助检查。
谢谢!
UPD。
是这样的吗:
$results = $mysqli->query("SELECT code, (destroy_date > unix_timestamp(now())) `status` FROM pin_code WHERE code=6194027126"); // destroy_date - дата завершения срока действия пин кода должна быть больше текущей
print '<table border="1">';
if($row = $results->fetch_assoc()) {
if($row["status"] == 1){
print '<tr>';
print '<td>'.$row["code"].'</td>';
print '<td>'.$row["status"].'</td>';
print '<td>Пин код действителен</td>';
print '</tr>';
}else{
print '<tr>';
print '<td>'.$row["code"].'</td>';
print '<td>'.$row["status"].'</td>';
print '<td>Пин код просрочен</td>';
print '</tr>';
}}else{
print '<td>'.$row["code"].'</td>';
print 'Нет такого пин кода';
}
print '</table>';
任务已解决,剩下的就是为状态设置所需的输出。
生成的响应可以直接插入到创建的界面中:
print '<td>Пин код '.$row["status"].'</td>';. 并且不需要检查......好吧,除了访问服务器/执行请求时出错。