是否有效?
<?php
$timestamp = mysql_query("INSERT INTO column1 (entry1, entry2)
VALUES ('$entry1', '$entry2')
AND SELECT timestamp");
?>
timestamp是mysql的一个列,在创建行时生成一个时间戳。
。-我需要指定创建"时间戳"行吗?(我认为它是可以的,配置为自己做)这两个动作可以在同一个查询中执行吗?如果没有,我该怎么做呢?我想确保我得到了时间戳,因为我稍后将在代码中使用它作为这个条目的唯一标识符。不然我怎么能得到它呢?(假设在许多其他行条目中可能存在多个相似的条目)。
谢谢!
这取决于您需要这些信息的目的。如果你需要它存储对其他行/实体,你想要它是一致的,然后我会存储日期在PHP(可能一次在一个web应用程序的每个请求),然后使用整个,例如
$currentTimestamp = time();
$timestamp = mysql_query("INSERT INTO column1 (entry1, entry2, timestamp_col)
VALUES ('$entry1', '$entry2', $currentTimestamp);
这样无论你在哪里使用时间戳都是一致的。您的请求不必花费几秒钟的时间来改变时间戳。
即使你不把它存储在其他任何东西上,如果你需要检索信息,你仍然可能想要使用这个方法,因为唯一的其他方法是两个查询,这可能会更有效。
这并不意味着自动填充MySQL日期字段没有意义,因为如果你只是记录信息以便稍后检索,那么在MySQL中完成它当然是有意义的。
这不是一个有效的mysql语句。作为一个选项,你可以使用PHP函数来代替。
$sql = "INSERT INTO column1 (entry1, entry2) VALUES ('$entry1', '$entry2')";
$timestamp = mysql_query($sql) ? time() : null;
不,这不是一个有效的语法。
另一种方法是将now()赋值给一个变量,并在时间戳列中使用它,而不是自动生成的值。
set @now = now();
insert into your_table (timestamp_column) values (@now);
select @now();
如果您想获得时间戳单元格中的时间戳值,则必须获取插入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.'"')