繁体   English   中英

如何自动将当前日期时间添加到数据库中

[英]How do I automatically add the current datetime into my database

我的目标:我创建了一个名为“ catalog”的表。 其目的是登录在数据库中添加/更改/删除的所有内容。

我的桌子:

CREATE TABLE `catalog`(
  `cat_id` int(22) NOT NULL,
  `cat_desc` varchar(255) NOT NULL,
  `datelog` datetime NOT NULL
);

这是添加库存物料后我的代码的一个示例。 请注意,“ invname”是所添加项目的输入名称:

    $name = $_POST['invname'];
    $amount = $_POST['amount'];
    $query = "INSERT INTO inventory (iname, amount) VALUES ('$name', '$amount')";
    $result = mysqli_query($conn, $query);
    if($result){
        $log = $name;
        $query = "INSERT INTO catalog (cat_desc, datelog) VALUES ( '$log', GETDATE() )";
        include 'alertsuccess.php';
    }

但是,在将清单添加到数据库时,无论何时我检查数据库都不会出现目录。

所以我的问题是:如何确保目录从中获取数据?

您未在目录中获得任何记录的原因是表设置不正确。 如果您没有指定主键(也没有指定主键),则在对表进行更新时,必须提供每个标记为NOT NULL的字段。 您未提供cat_id。 提供cat_id或更改表定义以添加以下内容:
主键(ID)。 这应该是正确的:

CREATE TABLE `catalog`(
`cat_id` int(22) NOT NULL,
`cat_desc` varchar(255) NOT NULL,
`datelog` datetime NOT NULL,
PRIMARY KEY (cat_id)
);

或者,更有用的是,这还将为您填写时间戳记:

CREATE TABLE `catalog`(
`cat_id` int(22) NOT NULL,
`cat_desc` varchar(255) NOT NULL,
`datelog` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
PRIMARY KEY (cat_id)
);

您要向cat_id添加AUTO_INCREMENT来保存您为每次插入指定的新ID

CREATE TABLE `catalog`(
  `cat_id` int(22) NOT NULL AUTO_INCREMENT,
  `cat_desc` varchar(255) NOT NULL,
  `datelog` datetime NOT NULL
);

您还应该使用NOW()而不是GETDATE(),因为MySQL不支持它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM