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,还有一大堆其他人 - 都不成功.
我哪里错了?
我提前谢谢你.
尝试:
$query = " SELECT * FROM administrative WHERE dob = '$dob' ORDER BY lastname ASC ";
^ ^
Run Code Online (Sandbox Code Playgroud)
注意围绕着的单引号$dob.
| 归档时间: |
|
| 查看次数: |
9255 次 |
| 最近记录: |