未将Select语句插入数据库后触发PHP Update语句

时间:2019-05-12 18:24:18

标签: php mysql sql database mysqli

我的数据库表usern包括两列-loggedindatevisited。我的PHP代码应该实现的是:

当用户“登录”时,loggedin列应更新为整数值1,而datevisited列应更新为当前日期。我当前的代码应该可以在以下代码行做到这一点:

  

$ sql =“ UPDATE usern SET已登录= 1 AND datevisited ='$ date'WHERE用户名='$ useremail'或email ='$ useremail'”;

但是此代码不会将这些值更新到数据库中。也许是因为此代码放置在什么地方而不起作用?

这是完整的代码:

if (isset($_POST['login'])) {
$useremail = $_POST['useremail'];
$password = $_POST['password'];
$loggedin = 1;
if (empty($useremail) || empty($password)) {
    header("Location: index.php?error=emptyfields");
    exit();
}
else {
    $date = date("Y-m-d H:i:s");
    $sql = "SELECT * FROM usern WHERE username=? OR email=?;";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: index.php?error=sqlerror");
        exit();
    }
    else {
        mysqli_stmt_bind_param($stmt, "ss", $useremail, $useremail);
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        if ($row = mysqli_fetch_assoc($result)) {
            $pwdCheck = password_verify($password, $row['pass']);
            if ($pwdCheck == false) {
                header("Location: signin.php?error=wrongpwd");
                exit();
            }
            else if ($pwdCheck == true) {
                session_start();
                $_SESSION['userid'] = $row['userid'];
                $sid = $_SESSION['userid'];
                $_SESSION['username'] = $row['username'];
                $_SESSION['email'] = $row['email'];
                $_SESSION['defpic'] = $row['defpic'];
                $_SESSION['loggedin'] = $row['loggedin'];
                $date = date("Y-m-d H:i:s");
                $sql = "UPDATE usern SET loggedin=1 AND datevisited='$date' WHERE username='$useremail' or email='$useremail'";
                if ($conn->query($sql) === TRUE) {
                    header("Location: index.php?login=success");
                    exit();
                }
            }
            else {
                header("Location: signin.php?error=wrongpwd");
                exit();
            }
        }
        else {
            header("Location: signin.php?error=nouser");
            exit();
        }
    }
}
}
else {
header("Location: signin.php");
exit();
}

更新语句位于该代码中的最后else if条语句上。

0 个答案:

没有答案