我有一个用户的mysql数据库,它有一个订阅到期字段(sub_expire),它是目前的时间戳格式,还有另一个字段(active),它是enum yes或no,yes是允许登录,如果没有拒绝登录。< / p>
我如何使用php检查是否已达到订阅到期日期或已经通过用户尝试登录,然后将活动字段更新为no以便用户无法登录。
非常感谢提前
答案 0 :(得分:0)
如果用户$username
,则会检查sub_expire
是否小于当前时间/日期。如果是,则active
设置为no
正如@AgeDeO所提到的,您不应该保存active
和sub_expire
,因为两者具有相同的用法
$SQL_CONN = mysqli ("host",
"user",
"password",
"dbname",
"port");
$sqlStm = $SQL_CONN->prepare("select u.user_id, u.sub_expire < NOW from users u where u.name = ?;");
$sqlStm->bind_param ("s", $username);
$sqlStm->execute();
$sqlStm->store_result();
$sqlStm->bind_result($id, $active);
$sqlStm->free_result();
$sqlStm->close();
if(!$active) {
$sqlStm = $SQL_CONN->prepare("update users set active =`no` WHERE user_id = ?");
$sqlStm->bind_param ("i", $user_id);
$sqlStm->execute();
$sqlStm->free_result();
$sqlStm->close();
}