我试图让用户输入日期并让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-21
。 mysqli_stmt_bind_param
中没有日期类型,因此我使用了s
。即使用户键入2015-07-21
或2015-7-21
,我也会得到零结果。我做错了什么?
答案 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"]))
你也不再需要第一行了。