【发布时间】:2020-09-21 15:59:35
【问题描述】:
我想在有人将帖子插入我的数据库时做到这一点,如果他们不提供他们的姓名,则默认为匿名。我该怎么做? 我的代码在这里
$query = "INSERT INTO cinemaPost (name, text, likes, reply_to) VALUES (?, ?, 0, NULL)";
$stmt = $conn->prepare($query);
$stmt->bindValue(1, $post_data['name']);
$stmt->bindValue(2, $post_data['post']);
$stmt->execute();
我尝试在数据库的创建表中做一个默认设置,但是当用户触发插入时,它会将其覆盖为空白字段。
CREATE TABLE CinemaPost(
id INT AUTO_INCREMENT NOT NULL,
name varchar(255) NOT NULL DEFAULT 'anonymous',
text varchar(100) NOT NULL,
post_date timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
likes INT NOT NULL,
reply_to INT,
Primary KEY (id)
);
【问题讨论】:
-
你用的是什么关系型数据库?
-
究竟是什么问题?为什么不检查包含名称的字段是否为空(根据您定义的任何术语)?