SELECT WHERE Date等于用户键入的不工作

时间:2016-07-21 18:20:43

标签: php mysql date

我试图让用户输入日期并让PHP显示记录的日期(日期类型字段)等于用户输入的日期。当它至少显示1时,我一直得到零结果。

这是我目前的代码。请注意,我必须填写一些内容,以防用户将日期文本框留空(如果他不想按日期搜索)

$Query = 'SELECT fname,lastname FROM recordsdb WHERE joindate = ?';

和部分:

$Bind_fdate = date("Y-m-d");
if ($_POST["userinputdate"] != "enterdatehere") {$Bind_fdate = strtotime($_POST["userinputdate"]);}
mysqli_stmt_bind_param($stmt,"s",$Bind_fdate);

我只显示所需的部分,但这段代码一直有效,直到我添加了日期比较部分。我只需要显示日期与用户输入日期相匹配的记录。数据库中的joindate字段是日期类型字段(YYYY-MM-DD),如2015-07-21mysqli_stmt_bind_param中没有日期类型,因此我使用了s。即使用户键入2015-07-212015-7-21,我也会得到零结果。我做错了什么?

2 个答案:

答案 0 :(得分:0)

可能是与date_format相关的问题

 "SELECT fname,lastname FROM recordsdb WHERE joindate = date_format(? , '%Y-%m-%d')"; 

答案 1 :(得分:0)

strtotime()函数将返回一个纪元,而不是您需要的格式化日期。

尝试替换

  

的strtotime($ _ POST [" userinputdate"])

使用

  

日期(' Y-m-d',strtotime($ _ POST [" userinputdate"]))

你也不再需要第一行了。