我可以将php日期与插入时的mysql日期进行比较吗?

时间:2011-12-03 20:58:10

标签: php mysql date insert

这是我从php页面插入mysql的工作查询:

$query = "INSERT INTO postings (title, description, timeStamp) VALUES ( '$title', '$description', STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s'))";

我希望现在只有在$ date大于mysql.timeStamp(时间戳类型)中的最新日期时插入。

我可以这样做吗?我尝试了以下内容:

$query = "INSERT INTO postings (title, description, timeStamp) VALUES ( '$title', '$description', STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s')) where STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s') > timeStamp";

1)我可以将php页面中的日期与插入时的mysql日期进行比较吗? 2)如果是这样......我将如何完成此查询并使“> timeStamp”仅评估表中的最新日期(假设我的where子句的其余部分有效)?

2 个答案:

答案 0 :(得分:1)

我认为如果您首先运行查询以检查在插入行之前表中是否存在具有更高时间戳的帖子,那会更好。您可以使用此查询执行此操作:

$query = "SELECT 1 FROM postings 
    WHERE STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s') < timeStamp
    LIMIT 1";

然后,如果没有返回任何结果,您可以正常插入帖子。

答案 1 :(得分:0)

1)不,你不能。你可以查看sintax here

您可以使用事务来避免@rabusmar解决方案的并发性,检查here一些示例

您也可以使用存储过程,但比事务更复杂并且结果相同。