这有效吗?
<?php
$timestamp = mysql_query("INSERT INTO column1 (entry1, entry2)
VALUES ('$entry1', '$entry2')
AND SELECT timestamp");
?>
timestamp是一个mysql列,它在创建行时生成时间戳。
e.g。 - 我需要指定“时间戳”行的创建吗? (我认为没关系,配置为自己做) - 这两个动作可以在同一个查询中执行吗?如果没有,我该怎么办?我想确保获得时间戳,因为我稍后在代码中使用它作为此条目的唯一标识符。我怎么能得到它? (假设在许多其他行条目中可能存在多个且相似的条目)。
谢谢!
答案 0 :(得分:2)
我取决于你需要的信息。如果您需要将它存储在其他行/实体中并且您希望它保持一致,那么我会将日期存储在PHP中(可能在Web应用程序中按请求一次),然后在整个过程中使用它,例如
$currentTimestamp = time();
$timestamp = mysql_query("INSERT INTO column1 (entry1, entry2, timestamp_col)
VALUES ('$entry1', '$entry2', $currentTimestamp);
无论你在哪里使用时间戳,都会保持一致。您的请求不需要花费几秒钟就可以在时间戳内变化。
即使您没有将其存储在其他任何内容中,如果您需要检索该信息,仍然可能需要使用此方法,因为唯一的另一种方法是两个查询,这很可能会更有效。
这并不意味着自动填充MySQL日期字段永远不会有意义,因为您只是记录该信息以便稍后检索,然后在MySQL中进行此操作当然是有意义的。
答案 1 :(得分:1)
这不是有效的mysql语句。作为选项,您可以使用PHP函数。
$sql = "INSERT INTO column1 (entry1, entry2) VALUES ('$entry1', '$entry2')";
$timestamp = mysql_query($sql) ? time() : null;
答案 2 :(得分:1)
不,这不是有效的语法。
另一种方法是将now()赋给变量并在timestamp列中使用它而不是自动生成的值。
set @now = now();
insert into your_table (timestamp_column) values (@now);
select @now();
答案 3 :(得分:0)
如果要获取时间戳单元格中的时间戳值,则必须获取插入ID,然后使用该最后一个插入ID来获取该ID的时间戳。 让我们说,
$query = mysql_query('INSERT INTO my_table("username","password") VALUES("falcon","test") ');
$last_id = mysql_insert_id($query); // This gets your id of the row inserted by $query
$timstamp = mysql_query('SELECT timestamp FROM my_table where id = "'.$last_id.'"')