私はしばらく PHP ループから外れていましたが、昨日戻ったとき、mysql と対話する多くの古い php 関数が段階的に廃止されていることにすぐに気付きました。これは問題ありませんが、新しい pdo コードに本当に苦労しています。ユーザーがログインしようとしているとしましょう。ユーザー名とパスワードの組み合わせが正しいかどうかを確認したいと思います。次に、彼のログイン数を更新し、最後のログインの日付/時刻を「previouslogin」に移動し、「lastlogin」を現在の日付/時刻で更新します。私が抱えている問題。変数でさえ、logincount をインクリメントできません。lastlogin を変数に割り当てることができないため、previouslogin を更新できません。私が間違っていることを教えてもらえますか?
public function accountLogin()
{
$sql = "SELECT UserID, UserName, PositionID, LoginCount, LastLogin
FROM users
WHERE UserName=:user
AND Password=:pass
LIMIT 1";
try
{
$stmt = $this->_db->prepare($sql);
$stmt->bindParam(':user', $_POST['username'], PDO::PARAM_STR);
$stmt->bindParam(':pass', $_POST['password'], PDO::PARAM_STR);
$stmt->execute();
if($stmt->rowCount()==1)
{
$_SESSION['Username'] = htmlentities($_POST['username'], ENT_QUOTES);
$_SESSION['LoggedIn'] = 1;
$_SESSION['UserID']= $stmt->fetch()[0];
$_SESSION['PositionID']= $stmt->fetch()[2];
$logincount= $stmt->fetch()[3];
$lastlogin= $stmt->fetch()[4];
$sql = "UPDATE users SET LoginCount = ". $logincount + 1 . ",
PreviousLogin = " . $lastlogin ."
WHERE UserID = " . $_SESSION['UserID'];
$stmt = $this->_db->exec($sql);
return TRUE;