如何从 POST 方法检索日期值


How to retrieve date value from POST method?

我在HTML代码中有以下日期输入框:

<input type="date" name="DOB" size="20">

表单数据使用 POST 方法传递到不同的 PHP 文件。在那里,日期被保存到一个变量中。

$DOB=$_POST['DOB'];

当我回显这个变量时,它会打印保存在其中的日期值。但是,如果我在查询中使用此变量,则不会读取该值。查询不返回任何值。

这是我的查询:

"SELECT site_no, name,NIC,gender,address,telephone FROM employee WHERE emp_no=$emp_no AND DOB=$DOB"

试试这个

将单引号与日期一起使用(假设您在变量$DOB获得了日期值)

"SELECT site_no, name,NIC,gender,address,telephone FROM employee WHERE emp_no=$emp_no AND DOB='$DOB'"

编辑

MySQL 希望 DATE 和 DATETIME 文本值以单引号括为字符串,例如 '2001-01-01 00:00:00'

您需要将

变量括在单引号中。使用以下代码

"SELECT site_no, name,NIC,gender,address,telephone FROM employee WHERE emp_no='$emp_no' AND DOB='$DOB'"

希望这对你有帮助

为了提高可见性,最好在 SQL 中添加引号。重要的是要知道你正在使用哪些类型并转义这些值,尤其是对于这样的东西。
带有引号和缩进的查询以提高可见性:

SELECT 
    `site_no`, `name`, `NIC`, `gender`, `address`, `telephone` 
FROM 
    `employee` 
WHERE 
    `emp_no` = '$emp_no' 
AND
    `DOB` = '$DOB'

保存日期的最佳做法是使用日期/日期时间或时间戳。您需要验证 DOB 格式和输入,去除不必要的字符等。查找 PHP 的 real_escape_stringtimedate

使用单引号表示$DOB

  "SELECT site_no, name,NIC,gender,address,telephone FROM employee WHERE emp_no=$emp_no AND DOB='$DOB'"