Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在插入时比较php日期和mysql日期吗?_Php_Mysql_Date_Insert - Fatal编程技术网

我可以在插入时比较php日期和mysql日期吗?

我可以在插入时比较php日期和mysql日期吗?,php,mysql,date,insert,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

这是我从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页面上的日期与insert上的mysql日期进行比较吗?

2) 如果是的话。。。我如何完成此查询并使“>timeStamp”只计算表中最近的日期(假设我的where子句的其余部分有效)

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

$query = "SELECT 1 FROM postings 
    WHERE STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s') < timeStamp
    LIMIT 1";
$query=“从帖子中选择1
其中STR_TO_DATE('$DATE','%a,%d%M%Y%H:%i:%s')<时间戳
限制1”;
如果没有返回结果,您可以正常插入帖子。

1)不,您不能。你可以检查一下sintax

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


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

如果您使用unix时间戳,您尝试执行的操作将更加简单/高效。至少在这种情况下。比较int值比转换字符串更容易。好主意!我沿着这条路走。谢谢我试图用下面的语句来包围我的正常insert语句。我有一个我知道应该是真的结果。。但没有插入任何内容。知道我做错了什么吗?
$querycheck=“从帖子中选择1,其中city=$city和STR_TO_DATE(“$DATE”,“%a,%d%m%Y%H:%I:%s”)>时间戳限制1”;如果($querycheck==true){my original insert statement here}