更新php pdo中的上次登录会话
我使用此代码更新用户的上次登录时间,并在用户单击“注销”时结束会话。从那里,用户将被引导到index.php页面。上次登录时间现在正在更新。请帮忙更新php pdo中的上次登录会话,php,mysql,session,pdo,Php,Mysql,Session,Pdo,我使用此代码更新用户的上次登录时间,并在用户单击“注销”时结束会话。从那里,用户将被引导到index.php页面。上次登录时间现在正在更新。请帮忙 <?php session_start(); $db_host = "localhost"; $db_user = "root"; $db_pass = ""; $db_name = "account"; try { $db_conn =
<?php
session_start();
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "account";
try {
$db_conn = new PDO("mysql:host={$db_host};dbname={$db_name}",$db_user,$db_pass);
$db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db_conn->prepare("UPDATE users SET lastlogin = :lastlogin WHERE ID = :ID");
$stmt->bindParam(':lastlogin', $time);
$stmt->bindParam(':ID', $_SESSION['ID']);
$time = date('Y-m-d h:i:s');
//$ID = $_SESSION['ID'];
$stmt->execute();
session_destroy();
header('location:index.php');
}
catch(PDOException $e)
{
echo "Error:" . $e->getMessage();
}
$db_conn = null;
?>
在使用$time之前,您需要定义它:
$time = date('Y-m-d h:i:s');
$id = $_SESSION['ID'];
$stmt->bindParam(':lastlogin', $time);
$stmt->bindParam(':ID', $id);
请确保您在会话['ID']中具有值。我这样做了,效果很好
<?php
session_start();
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "account";
try {
$time = date('Y-m-d h:i:s');
$username = $_SESSION['username'];
$db_conn = new PDO("mysql:host={$db_host};dbname={$db_name}",$db_user,$db_pass);
$db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db_conn->prepare("UPDATE users SET lastlogin = :lastlogin WHERE username = '$username'");
$stmt->bindParam(':lastlogin', $time);
//$stmt->bindParam(':username', $_SESSION['username']);
$stmt->execute();
session_destroy();
header('location:index.php');
}
catch(PDOException $e)
{
echo "Error:" . $e->getMessage();
}
$db_conn = null;
?>
为什么不利用mysql的时间呢now()
。当答案对你有用时,你也应该开始接受答案。祝你好运,我正在处理另一个问题。医生不支持这种说法。请看例子1。你能指出这个答案与原来的帖子有什么不同吗?这将有助于读者谁可能能够从中学习,在未来。(你也可以通过点击左边的勾号来接受这个答案——在这里接受自己的答案也可以)。