gpt4 book ai didi

php - 尝试在表单提交中插入 NULL 日期但得到 00 :00

转载 作者:行者123 更新时间:2023-11-30 21:38:28 25 4
gpt4 key购买 nike

我试图在表单插入中允许 NULL 日期(用于永久类型禁令),但如果该字段留空,它会插入 0000-00-00 00:00:00

BannedMembers 表如下所示:

CREATE TABLE BannedMembers
(
BanID INT NOT NULL AUTO_INCREMENT,
MemberID INT NOT NULL ,
WarningSent BIT NOT NULL ,
BannedDate DATETIME NOT NULL ,
BanDuration DATETIME NULL ,

PRIMARY KEY (BanID),
FOREIGN KEY (MemberID)
REFERENCES Members(MemberID)
);

我想通过将持续时间保留为 NULL 来启用永久禁止,我的 HTML/PHP 脚本(已删节):

<form method="post" name="banmember_form" id="banmember_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Banned Until? (Leave empty for permanent)
<input type="date" class="form-control" name="banmember_duration" id="banmember_duration" placeholder="dd/mm/yyyy">
<button type="submit" name="addbannedmember_submit" id="addbannedmember_submit">Add</button>
</form>

<?php
if(isset($_POST["addbannedmember_submit"]))
{
//Check if the duration is empty (for permanent bans)
if (empty($_POST["banmember_duration"]))
{
$banDuration = NULL ;
}
else
{
$banDuration = $_POST["banmember_duration"];
}
$addBannedMemberSql = "INSERT INTO BannedMembers(MemberID, BannedDate,
BanDuration)
VALUES (".$_POST["banmember_name"]."',NOW(),'$banDuration') ";
$conn->exec($addBannedMemberSql);
echo "<meta http-equiv='refresh' content='0'>";
}
?>

从我读到的以及我能够发现的内容来看,上面的 NULL 被存储为 '' 所以当它插入时它只是默认返回到 00:00.. .etc。我找不到关于如何修复它的答案,许多想法说要删除 '' 而其他人说要包括它们,我试过 ({$banDuration}) 在我的 INSERT 但同样的问题。

我不完全理解准备好的语句,因为我对此非常陌生,并且希望有一种方法可以将 NULL 存储为空白实体,以便在用户将其留空时传递给数据库。

最佳答案

您尝试保存的“NULL”字符串有问题。你可以使用类似的东西:

if(isset($_POST["addbannedmember_submit"])) {
//Check if the duration is empty (for permanent bans)
if (empty($_POST["banmember_duration"])) {
$banDuration = NULL ;
} else {
$banDuration = "'" . $_POST["banmember_duration"] . "'";
}
$addBannedMemberSql = "INSERT INTO BannedMembers(MemberID, BannedDate, BanDuration)
VALUES (".$_POST["banmember_name"]."',NOW(),$banDuration) ";
$conn->exec($addBannedMemberSql);
echo "<meta http-equiv='refresh' content='0'>";
}

关于php - 尝试在表单提交中插入 NULL 日期但得到 00 :00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52830328/

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