我在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"
答案 0 :(得分:1)
试试这个
使用带引号的单引号(假设您在$ 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'等字符串单引号
答案 1 :(得分:1)
您需要将变量括在单引号中。使用以下代码
"SELECT site_no, name,NIC,gender,address,telephone FROM employee WHERE emp_no='$emp_no' AND DOB='$DOB'"
希望这有助于你
答案 2 :(得分:0)
$ DOB使用单引号
"SELECT site_no, name,NIC,gender,address,telephone FROM employee WHERE emp_no=$emp_no AND DOB='$DOB'"
答案 3 :(得分:0)
为了实现可见性,最好在SQL中添加引号。重要的是要知道你正在使用什么类型并逃避价值观,特别是这样的事情 您的查询带有引号和缩进的可见性:
SELECT
`site_no`, `name`, `NIC`, `gender`, `address`, `telephone`
FROM
`employee`
WHERE
`emp_no` = '$emp_no'
AND
`DOB` = '$DOB'
保存日期的最佳做法是使用DATE / DATETIME或时间戳。您需要验证DOB格式和输入,删除不必要的字符等。查找real_escape_string
,time
和date
以获取PHP