gpt4 book ai didi

sql - 如何更新数据库表让两个字段为空/未填充/空

转载 作者:搜寻专家 更新时间:2023-10-30 20:14:08 26 4
gpt4 key购买 nike

在我正在编写代码的博客上,我希望管理员能够编辑评论。这工作得很好,但是由于表中的两个字段当时应该为空,因此在编写新评论时会出现问题。

Db-table comments 是这样构建的:

评论(id, content, post_id, comment_author, date, editedBy, editedAt)

当写入新评论时,字段 editedByeditedAt 应该为空/只是未填充/null,因为它没有明显更新。

我不能让这些字段留空,我可以在其中放入一个空字符串或将它们标记为 NULL 吗?

public function insertForPost($content, $post_id, $comment_author, $date, $editedBy, $editedAt)
{
$table = $this->getTableName();

$stmt = $this->pdo->prepare(
"INSERT INTO `{$table}`(`content`, `post_id`, `comment_author`, `date`,
`editedBy`, `editedAt`) VALUES (:content, :post_id, :comment_author, :date,
:editedBy, :editedAt)"
);

$stmt->execute([
'content' => $content,
'post_id' => $post_id,
'comment_author' => $comment_author,
'date' => $date,
'editedBy' => $editedBy,
'editedAt' => $editedAt
]);
}

所有参数都有正确的数据,我只是不知道如何处理 editedByeditedAt

当评论被编辑时(效果很好)editedBy 将填入编辑评论的用户名,editedAt 将填入编辑日期评论已被编辑,所以都是字符串。

我想知道是否需要在这两个字段中放置一个空字符串或将它们设置为null,以及如何操作。

最佳答案

只要 editedAteditedBy 可以为空(因此列在创建表期间不包含 NOT NULL 语句),您可以使用插入或更新语句将它们从表名和 VALUES 子句之间的列集中保留下来。因此,查询结果为:

INSERT INTO `{$table}`(`content`, `post_id`, `comment_author`, `date`) VALUES (:content, :post_id, :comment_author, :date);

关于sql - 如何更新数据库表让两个字段为空/未填充/空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54305374/

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