我的目标:我创建了一个名为“ 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';
}
但是,尽管将清单添加到数据库中,但是无论何时我检查数据库都不会出现目录。
所以我的问题是:如何确保目录会从中获取数据?
答案 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);