我可以比较一个php日期mysql日期在插入


Can I compare a php date to a mysql date on insert?

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

$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日期插入?
如果是这样的话……我如何完成这个查询并使"> timeStamp"只评估表中最近的日期(假设我的where子句的其余部分有效)?

我认为这是更好的,如果你先运行一个查询,检查是否有更高的时间戳在你的表插入行之前的帖子。您可以通过以下查询来实现:

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

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

不,你不能。你可以在这里查看

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

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