0

我有一个页面,其中包含允许用户在数据库中输入最多 10 条记录。我遇到的问题是,在许多(大多数)情况下,用户只会输入一两条记录,但数据库插入正在处理所有空白记录并插入它们。我已将数据库配置为不接受 NULL 值,但我怀疑空白值并不完全等同于 NULL,这就是仍在插入记录的原因。我该如何编码,以便不会将空白记录插入到数据库中。

当前插入代码:

    <?php
if (isset($_POST['submit'])) {  

for($i = 0; $i < 10; $i++)
{

$indtypeid = $_POST['indtype'][$i];
$indicator = $_POST['indicator'][$i];
$actorid = $_POST['actor'][$i];
$reportid = $_POST['report'][$i];

print 'Row ' . $i . ': '  . $indtypeid . '-' . $indicator . '-' . $actorid . '<br/>';

$qry_digestreport = "INSERT INTO indicator (indtypeid,indicator,actorid,reportid) VALUES ('$indtypeid', '$indicator', '$actorid', '$reportid')";


if (!mysql_query($qry_digestreport,$connection))
  {
  die('Error: ' . mysql_error());
  }
echo "<br/>Records added!<br/>";
4

1 回答 1

2

一个简单的if()检查就可以了:

if (empty($indtypeid) || empty($indicator) || ....) {
   continue; // jump to next loop iteration
}

在你的$_POST任务之后。

请注意,您的代码完全容易受到 SQL 注入攻击,因此您可能需要在http://bobby-tables.com上阅读一些相关信息

于 2012-04-10T18:53:30.983 回答