[英]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.