所以我创建了一个类似这种形式的表单
年:
<select name="year">
<option name="year"></option>
<option name="year">1991</option>
</select>
月:
<select name="month">
<option name="month"></option>
<option name="month">1991</option>
</select>
天:
<select name="day">
<option name="day"></option>
<option name="day">1991</option>
</select>
我试图以这种格式YYYY-mm-dd
我使用了这种方法
if(isset($_POST['submit'])){
$year = mysqli_real_escape_string($db, $_POST['year']);
$month = mysqli_real_escape_string($db, $_POST['month']);
$day = mysqli_real_escape_string($db, $_POST['day']);
}
$sql = "INSERT INTO spoter.user (`id`, `first_name`, `last_name`,
`password`, `email`, `location`, `DOB`) VALUES ($year, $month, $day)";
我尝试了几个选项,但我不知道我是否应该更改HTML中的表单并使其与我的不同?要么?有办法吗?
如何获取用户输入日期并将其插入表格?
答案 0 :(得分:0)
首先,您的SQL查询不正确,您提供了7列,但只提供了3个字段,我还猜测DOB
是一个单独的日期字段,因此它需要一个日期字符串:
$dob = "{$year}-{$month}-{$day}"; // assuming your using YYYY-MM-DD format
答案 1 :(得分:0)
这里有很多问题:
<option>
应该有value
属性,而不是name
$sql
在isset()
之外,如果是这样的话?
对于第2点,这是一个例子:
<select name="year">
<option value=""></option>
<option value="1991">1991</option>
</select>
您可以按$_POST['year']
获取数据(假设您使用POST提交表单)
对于第1点,DOB字段的值应为:
$dob = $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'];
但是将$dob
插入查询中,我建议检查3个$_POST
字段的空值。
答案 2 :(得分:0)
您没有包含值属性
<select name="year">
<option value="1991"></option>
<option value="1991">1991</option>
</select>
<select name="month">
<option value=""></option>
<option value="12">12</option>
</select>
<select name="day">
<option value=""></option>
<option value="3">3</option>
</select>
并确保它包装在表单上
答案 3 :(得分:0)
或类似的东西来构建变量,我通常喜欢这种方式格式化语法高亮显示目的,以查看我正在使用的变量。
$dob = $year."-".$month."-".$day;
答案 4 :(得分:-2)
仅插入DOB(我假设你知道所有明显的小错误):
if(isset($_POST['submit'])){
$year = mysqli_real_escape_string($db, $_POST['year']);
$month = mysqli_real_escape_string($db, $_POST['month']);
$day = mysqli_real_escape_string($db, $_POST['day']);
$dob = $year."-".$month."-".$day;
$sql = "INSERT INTO spoter.user (`id`, `first_name`, `last_name`,
`password`, `email`, `location`, `DOB`) VALUES (``,``,``,``,``,``,".$dob.")";}
答案 5 :(得分:-2)
而不是做所有这些u sud尝试html表单的内置函数而不是尝试所有这些查询只是放置这个
mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
CAST('". $date ."' AS DATE))") or die(mysql_error());