MySQL中使用PHP保存时间戳
在MySQL数据库中保存时间戳(timestamp)是一件非常常见且重要的事情。时间戳通常用于记录数据的创建和修改时间等信息。在PHP中,我们可以使用time()函数来获得当前时间的时间戳。但是,如果我们直接将此时间戳存入MySQL表中,可能会遇到一些问题。因此,在这篇文章中,我们将介绍如何将时间戳正确地存入MySQL表中。
阅读更多:MySQL 教程
存储时间戳
在MySQL表中,为了正确存储时间戳,我们将其定义为TIMESTAMP类型。在创建或修改表时,我们可以使用以下代码:
CREATE TABLE example (
id INT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
在上面的例子中,我们创建了一个名为“example”的表,其中包含一个名为“created_at”的列和一个名为“updated_at”的列。我们在创建时指定了当前时间戳作为默认值,以便将其记录为记录创建时间。另外,在更新时,我们还指定了“updated_at”列将自动更新为当前时间戳,以便将其记录为记录修改时间。
保存时间戳
一旦我们定义了表和列,我们就可以使用PHP将时间戳插入到表中。以下是示例代码:
<?php
// 连接到MySQL数据库
conn = mysqli_connect("localhost", "my_user", "my_password", "my_db");
// 准备 INSERT 语句stmt = conn->prepare("INSERT INTO example (id) VALUES (?)");stmt->bind_param("i", id);
// 设置参数并执行语句id = 123;
stmt->execute();
// 关闭连接stmt->close();
$conn->close();
?>
在上面的代码中,我们首先通过mysqli_connect()函数连接到MySQL数据库。然后,我们使用准备语句(prepared statement)来定义INSERT语句。在此语句中,我们将ID作为参数绑定到INSERT语句中。接下来,我们为ID设置值并执行语句。最后,我们关闭语句和连接以确保安全和清除资源。
获取时间戳
现在,我们已经成功地将时间戳保存到MySQL表中。但是,如何检索这些值呢?对于已存储的时间戳,我们可以使用DATE_FORMAT()函数将其格式化为可读的日期和时间格式。以下是示例代码:
SELECT id, DATE_FORMAT(created_at,'%Y-%m-%d %H:%i:%s') AS created_at_fmt FROM example;
在这个例子中,我们选择了“id”和“created_at”列,并使用DATE_FORMAT()函数将其格式化为“YYYY-MM-DD HH:MM:SS”的字符串。由于DATE_FORMAT()函数不会直接更改现有值,因此我们需要将其指定为选择语句的新名称。在本例中,我们使用“created_at_fmt”作为新的列名。
总结
在本文中,我们介绍了如何在MySQL表中正确存储和检索时间戳。我们了解到,为了正确地存储时间戳,我们需要将其定义为TIMESTAMP类型,并使用DEFAULT和ON UPDATE功能来设置其默认和更新值。同时,我们学习了如何使用DATE_FORMAT()函数将时间戳格式化为可读的日期和时间字符串。现在,您可以使用这些技术来记录和检索数据的创建和修改时间戳!
极客笔记