gpt4 book ai didi

php - 数据库中的日期错误(不可更新)

转载 作者:行者123 更新时间:2023-11-29 10:31:17 26 4
gpt4 key购买 nike

我有代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php
session_start();
$conn = mysqli_connect("localhost","root","");
mysqli_select_db($conn, "test");
?>

<?php
if (isset($_GET['logout'])==1)
{
session_destroy();
$_SESSION['ishere'] = false;
}
?>

<?php
if (isset($_POST['login_button']))
{
$login = $_POST['login'];
$password = $_POST['password'];

if (mysqli_num_rows(mysqli_query($conn, "SELECT login, password FROM user WHERE login = '".$login."' AND password = '".$password."';")) > 0)
{
mysqli_query($conn, "UPDATE user SET 'login_time' = NOW() WHERE login = '".$login."';");

$_SESSION['ishere'] = true;
$_SESSION['login'] = $login;
}
else echo "Something went wrong. Try again!";
}

if (isset($_SESSION['ishere'])==true)
{
echo "Hello <b>".$_SESSION['login']."</b><br><br>";
$time = mysqli_fetch_all(mysqli_query($conn, "SELECT login_time FROM user WHERE login='".$_SESSION['login']."'"));
echo "Czas ostatniego logowanie ";
foreach ($time as $i) {
echo date('Y-m-d H:i:s', implode($i));
}
echo '<a href="?logout=1">[Logout]</a>';
}
?>

<?php if (isset($_SESSION['ishere'])==false): ?>
<form method="POST" action="login.php">
<b>Login:</b> <input type="text" name="login"><br>
<b>Password:</b> <input type="password" name="password"><br>
<input type="submit" value="Login" name="login_button">
</form>
<?php endif; ?>

<?php mysqli_close($conn); ?>
</body>
</html>

字段login_time在我的数据库中为 int 并且我将其更改为最新。当我登录时,我始终具有相同的时间戳,该时间戳会转换为日期:1970-01-01 01:00:00 。我做错了什么?我认为登录时这段代码会更新我的数据库并设置 login_time到当前时间,然后当我再次登录时,将打印新的时间:(啊,我使用了 NOW()、time()、date('Y-m-d H:i:s') 和 CURRENT_TIMESTAMP 等函数。如何写入数据库正确的时间并阅读它?

编辑。我更改了代码:

mysqli_query($conn, "UPDATE user SET login_time = now() WHERE login = '".$login."';");

$result = mysqli_query($conn, "SELECT login_time FROM user WHERE login='".$_SESSION['login']."'");
$time = mysqli_fetch_assoc($result);
echo date('Y-m-d H:i:s', $time["login_time"]);

现在即使我注销并再次登录,我也有相同的日期。并且日期是从 2038 年开始...

编辑2。 UNIX_TIMESTAMP()是一个解决方案:)

最佳答案

不要在列名周围使用引号(当需要时最终使用反引号)引号用于文字值

"UPDATE user SET login_time = NOW() WHERE login = '".$login."';");

关于php - 数据库中的日期错误(不可更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47368847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com