这是我在php中的登录代码我想更新users_table并在数据库中插入最后一个登录日期。我似乎只是输入登录日期而我没有更新任何建议?
session_start();
if(isset($_POST['submit'])) {
$uname = $_POST['uname'];
$pw = $_POST['pw'];
//retrieve users from database
require_once('db.php');
$sql = 'SELECT * FROM users_table WHERE username="'.mysql_escape_string($uname).'" AND password="'.mysql_escape_string(md5($pw)).'"
LIMIT 0, 1
';
$qry = mysql_query($sql);
$count = mysql_num_rows($qry);
if($count > 0) {
$_SESSION['username'] = $uname;
$_SESSION['password'] = $pw;
$date = date ('Y-m-d');
//this code will insert the login date on the database
mysql_query("INSERT into users_table (last_login) VALUES ('$date') ");
header('Location: products_list.php');
} else {
header('Location: index.php?error=1');
}
}
答案 0 :(得分:1)
您应该更新现有记录,而不是插入新记录。
mysqli_query('UPDATE users_table SET last_login=NOW() WHERE username=' .
mysqli_real_escape_string($uname));
更好的是,获取用户的ID并将其用于更新:
$user = $qry->fetch_object();
mysqli_query('UPDATE users_table SET last_login=NOW() WHERE id=' .
mysqli_real_escape_string($user->id));