这是我的工作查询插入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的并发性解决方案,查看这里的一些示例
您也可以使用存储过程,但它比事务更复杂,并且结果相同。