MySQL和PHP查询日期= $ date问题

Tim*_*PQR 1 php mysql date where-clause

我有一个简单的问题,查询将表中的日期与用户的日期输入进行比较.(给我一份表中所有人的列表,其中包括生日"MM/DD/YYYY").

当我将新人输入数据库时​​,我想验证该人员是否已经在数据库中.因此,使用"名字","姓氏"和"出生日期",查询表格,如果匹配,则弹出一个窗口并说"你确定要这样做 - 看起来已经输入了人".

没有问题与"名字""姓氏"(我已经很好地工作)所以现在我想在查询中添加"出生日期".首先,我删除了"名字"和"姓氏",我只使用"出生日期".

作为"概念证明",以下MySQL查询在MySQL Workbench上运行良好:

SET @testdate = "1934-06-06";
SELECT localid, firstname, lastname, dob FROM administrative WHERE dob = @testdate;
Run Code Online (Sandbox Code Playgroud)

表中的"dob"列是"日期"格式而不是"日期时间".

所以我现在切换到php并将其作为测试写入:

$frontenddob = "06/06/1934";
$dob = date("Y-m-d", strtotime($frontenddob));

echo "--$frontenddob--<br>"; //gives 06/06/1934
echo "--$dob--<br><br>";     //gives --1934-06-06-- ("--" added to "see" extra spaces)
echo "$dob"; echo "<br>";    //gives 1934-06-06

$host = "xx";
$user = "xx";
$password = "xx";
$dbname = "xx";

$cxn = mysqli_connect($host,$user,$password,$dbname);
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();}

$query = " SELECT * FROM administrative WHERE dob = $dob ORDER BY lastname ASC  ";
Run Code Online (Sandbox Code Playgroud)

用户以mm/dd/yyyy格式输入日期字符串.

它按日期("Ymd",strtotime($ frontenddob));转换为日期格式.

"回声"表明转换是正确的 - "echo $ dob"给了我1934-06-06.

查询与<=,> =,<,>一起工作正常,我已经尝试了其他一切=,==,===,> = $ date AND <= $ date,还有一大堆其他人 - 都不成功.

  1. dob(出生日期)表中的格式是"日期"而不是"日期时间".
  2. 用户输入字符串日期格式转换为MySQL日期格式YYYY-MM-DD.
  3. 该查询适用于<,>,<=,> =.

我哪里错了?

我提前谢谢你.

Nil*_*l'z 5

尝试:

$query = " SELECT * FROM administrative WHERE dob = '$dob' ORDER BY lastname ASC  ";
                                                    ^    ^
Run Code Online (Sandbox Code Playgroud)

注意围绕着的单引号$dob.