Php 我可以允许表单中的日期字段为空吗?
我有一个用php编写的表单。如果我填写了表单中的所有字段,我就可以很好地将其插入MYsql数据库。基本上我有3个文本字段和2个日期字段。我只想选择其中一个日期字段,而不是两个 我只试过插入一个日期,但只有当我选择了两个日期时,它才不会插入到DB中。它可以工作 下面是选择两个日期字段时的代码。我希望能够只有一个或另一个或两者如果可能的话Php 我可以允许表单中的日期字段为空吗?,php,mysql,forms,Php,Mysql,Forms,我有一个用php编写的表单。如果我填写了表单中的所有字段,我就可以很好地将其插入MYsql数据库。基本上我有3个文本字段和2个日期字段。我只想选择其中一个日期字段,而不是两个 我只试过插入一个日期,但只有当我选择了两个日期时,它才不会插入到DB中。它可以工作 下面是选择两个日期字段时的代码。我希望能够只有一个或另一个或两者如果可能的话 <?php require('db.php'); //Inserting Data Variables if(isset($_POST['submit'
<?php
require('db.php');
//Inserting Data Variables
if(isset($_POST['submit']))
{
echo $owner = $_POST['owner'];
echo $budget = $_POST['budget'];
echo $status = $_POST['status'];
echo $s_jan = $_POST['s_jan'];
echo $s_feb = $_POST['s_feb'];
//Query the database
$query = "insert into sbook(owner,budget,status,s_jan,s_feb)
values('$owner','$budget','$status','$s_jan','$s_feb')";
$insert_query = mysqli_query($con, $query);
}
?>
Here is the form
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
<label>Owner</label>
<br />
<input class="input" type="text" name="owner">
<br />
<label>EST Budget:</label><br />
<input class="input" type="text" name="budget"/>
<br />
<label>Status:</label><br />
<input class="input" type="text" name="status"/>
<br />
<label>Jan</label><br />
<input class="input" type="date" name="s_jan"/>
<br />
<label>Feb</label><br />
<input class="input" type="date" name="s_feb"/>
<br />
<p>
<button name="submit" type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
你能澄清一下它没有插入的吗?你有错误吗?它看起来不像是你的错误检查。此外,您还可以接受SQL注入和XSS注入。您也不应该echo
来分配值。谢谢您提供的信息。我的意思是,当我只使用1个日期时,按submit不会插入数据库。当我使用2个日期时,它将提交到database@Icelander检查数据库中的日期字段是否未标记为非空
,这意味着,如果您尝试在没有显示日期字段的情况下插入数据,数据库将忽略这一点,并在Php语句中给出错误消息。警告:使用mysqli
时,您应该使用和向查询中添加任何数据。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何类型的数据直接放入查询中,如果有人试图利用您的错误进行攻击,这可能会非常有害。注意:这样会大大减少冗长,使代码更易于阅读和审核,并且不容易与过时的mysql\u query
接口混淆,因为缺少一个i
可能会造成麻烦。示例:$db=new mysqli(…)
和$db->prepare(“…”)
过程接口很大程度上是PHP 4时代的产物,当时引入了mysqli
API,不应在新代码中使用。您能否澄清它没有插入?你有错误吗?它看起来不像是你的错误检查。此外,您还可以接受SQL注入和XSS注入。您也不应该echo
来分配值。谢谢您提供的信息。我的意思是,当我只使用1个日期时,按submit不会插入数据库。当我使用2个日期时,它将提交到database@Icelander检查数据库中的日期字段是否未标记为非空
,这意味着,如果您尝试在没有显示日期字段的情况下插入数据,数据库将忽略这一点,并在Php语句中给出错误消息。警告:使用mysqli
时,您应该使用和向查询中添加任何数据。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何类型的数据直接放入查询中,如果有人试图利用您的错误进行攻击,这可能会非常有害。注意:这样会大大减少冗长,使代码更易于阅读和审核,并且不容易与过时的mysql\u query
接口混淆,因为缺少一个i
可能会造成麻烦。示例:$db=newmysqli(…)
和$db->prepare(“…”)
过程接口主要是php4时代的产物,当时引入了mysqli
API,不应在新代码中使用。