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

时间:2019-06-23 04:41:48

标签: php mysql sql

我的目标:我创建了一个名为“ 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';
    }

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

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

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

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

//remove item at index 5
for (int i = 5; i < inventory.Count - 1; i++)
  inventory[i] = inventory[i+1];

inventory[inventory.Length - 1] = null;

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

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

答案 2 :(得分:0)

您要在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不支持

答案 3 :(得分:-1)

您可以在PHP中使用函数 time(),此函数以时间戳的形式返回整数形式的10位数字 然后您可以将此时间戳转换为人类可读的格式,例如日期或数据/时间或时间 要么 使用 date()函数从第一次保存转换时间到数据库 date()返回字符串根据输入的格式explained in this link 例如:

$current_time = time(); // 10 digit from 1970 00:00:00 

OR

$currentDate = date('Y-m-d', $current_time);