gpt4 book ai didi

php - 更新 MySQL 中的时间戳

转载 作者:行者123 更新时间:2023-11-29 17:42:00 25 4
gpt4 key购买 nike

我想使用 php 更新表中的一行。但这是不可能的!我不知道为什么!这是我的代码

if (isset($_POST['publish'])) {
try {
$post_id = $_POST['post_id'];
// $name = $_POST['name'];
// $email = $_POST['email'];
// $body = $_POST['body'];
$status =1;
$sql2 = 'UPDATE cmts SET
status=:status,

WHERE post_id=:id limit 1';
$stmt2 = $pdo->prepare($sql2);
$stmt2->execute(['status' => $status, 'id' => $post_id]);
header('Location: comment.php');
}
catch(Exeption $e) {
echo "error". $e->getMessage();
}
}

和 html 代码:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="hidden" name="post_id" value="<?php echo $cmt->post_id; ?>">
<!-- <input type="hidden" name="name" value="<?php //echo $cmt->name; ?>">
<input type="hidden" name="email" value="<?php //echo $cmt->email; ?>">
<input type="hidden" name="body" value="<?php //echo $cmt->body; ?>"> -->
<input type="submit" value="Publish" name="publish">
</form>

我只想将一列(状态)更新为 1。我添加另一列进行更新,它确实更新了该行,但它影响了我不想要的 TIMESTAMP 列。这是我的 table 的照片: enter image description here

更新:感谢您的回答。它是状态后的逗号(,)。我删除了它,一切都正常。

最佳答案

在 MySql 中,TIMESTAMP 列通常会在您更新行时更新。如果您不希望它更新,则需要以这种方式定义它,以便 TIMESTAMP 获取创建行的日期和时间,而不是更新

CREATE TABLE t1 (
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

更多关于时间戳的配置可以阅读here

关于php - 更新 MySQL 中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955218/

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