我在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_string
、time
和 date
使用单引号表示$DOB
"SELECT site_no, name,NIC,gender,address,telephone FROM employee WHERE emp_no=$emp_no AND DOB='$DOB'"