你好,所以我有一个名为tables
的表,它包含9个字段(' id,第一,第二,第三,第四,第五,第六,第七,八),如果所有这些字段都不是空的,我想把它作为新记录插入到同一个表上。这是我现在的代码:
$db = new db();
$bind = array(
":tid" => "1"
);
$results = $db->select("tables", "tableID = :tid", $bind);
foreach ($results as $r) {
$tableID = $r['id'];
$l1_1 = $r['first'];
$l1_2 = $r['second'];
$l1_3 = $r['third'];
$l1_4 = $r['fourth'];
$l1_5 = $r['fifth'];
$l1_6 = $r['sixth'];
$l1_7 = $r['seventh'];
$l1_8 = $r['eight'];
}
if($l1_1 != "" AND $l1_2 != "" AND $l1_3 != "" AND $l1_4 != "" AND $l1_5 != "" AND $l1_6 != "" AND $l1_7 != "" AND $l1_8 != "")
{
$db->insert("tables", array(
"first" => $l1_1,
"second" => $l1_2,
"third" => $l1_3,
"fourth" => $l1_4,
));
//insert 2nd record
$db->insert("tables", array(
"first" => $l1_5,
"second" => $l1_6,
"third" => $l1_7,
"fourth" => $l1_8,
));
}
我也有一个很长的代码,它所做的总结是检查字段是否为空,并在那里插入数据,直到所有字段都填满。当输入最后一个数据时,将执行上面的代码。当输入最后一个数据时,它将执行上面的代码,检查所有字段是否为空并插入新数据。这段代码可以工作,但是插入的最后一个数据在插入的新记录中显示为空白。
我知道我的解释含糊不清,但你想知道什么就问我吧。我相信你的答案在你的If语句中。您正在检查字段是"还是空白。这是不正确的,因为它们在数据库中可能是NULL。有一个答案可以解释你如何解决它。
更好的方法来检查null或空字符串变量?
修改代码如下:
if(isset($l1_1) && trim(($l1_1) != ''
AND isset($l1_2) && trim(($l1_2) != ''
AND isset($l1_3) && trim(($l1_3) != ''
AND isset($l1_4) && trim(($l1_4) != ''
AND isset($l1_5) && trim(($l1_5) != ''
AND isset($l1_6) && trim(($l1_6) != ''
AND isset($l1_7) && trim(($l1_7) != ''
AND isset($l1_8) && trim(($l1_8) != '')