我找到了有关此主题的一些信息(Trying to insert into mysql database ignoring blank fields)。但是我可以通过注射获得一些问题......
我已将NOT NULL
添加到我的列中,但仍然插入了''
的值。所以它没有给我我想要的结果。
无论如何我现在得到了这个:
if(isset($_POST['btnOpslaan']))
{
include_once("dbConnect.php");
$Date1 = strip_tags($_POST['Datum1']);
$ProductDescription1 = strip_tags($_POST['ProductOmschrijving1']);
$Amount1 = strip_tags($_POST['Aantal1']);
$AmountCreated1 = strip_tags($_POST['AantalGemaakt1']);
$Difference1 = strip_tags($_POST['Verschil1']);
$Date2 = strip_tags($_POST['Datum2']);
$ProductDescription2 = strip_tags($_POST['ProductOmschrijving2']);
$Amount2 = strip_tags($_POST['Aantal2']);
$AmountCreated2 = strip_tags($_POST['AantalGemaakt2']);
$Difference2 = strip_tags($_POST['Verschil2']);
$Query = "INSERT INTO productielijn1 (Datum, Productomschrijving, Aantal, AantalGemaakt, Verschil) VALUES(?, ?, ?, ?, ?), (?, ?, ?, ?, ?);
if($stmt = $dbCon->prepare($Query))
{
$stmt->bind_param('ssiiissiii',
$Date1, $ProductDescription1, $Amount1, $AmountCreated1, $Difference1,
$Date2, $ProductDescription2, $Amount2, $AmountCreated2, $Difference2);
if( $stmt->execute() === TRUE)
{
$Message = "Planning is aangemaakt!";
}
}
}
我的网页用于创建计划。但有时你只想添加1个任务。因此$Date2
,$productDescription2
和其他人可能是空的。但它仍然将行添加到我的mysql数据库中,仅使用values 0000-00-00''和0,0,0。
我可以通过IF语句检查是否设置了这些字段来轻松停止此操作。如果没有,它使用不同的查询。
但我有5行用于向数据库添加信息($ Date3,$ Date4和$ Date5 +每行所有其他信息)。
因此,当我用if语句解决这个问题时,如果声明我会变得很大......
有没有更简单的方法来解决这个问题?我可以告诉我的数据库在空的时候没有添加一行吗?
答案 0 :(得分:1)
设计数据库,以便存储有关日期和产品说明的信息。使用类似的东西:
使用数组发布数据,然后迭代数组并逐个插入