使用PHP插入MySQL DB时排除空记录

时间:2012-04-10 18:51:16

标签: php mysql

我有一个页面,其中包含允许用户在数据库中输入最多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/>";

1 个答案:

答案 0 :(得分:2)

进行简单的if()检查:

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

$_POST作业完成后。

请注意,您的代码完全容易受到SQL注入攻击,因此您可能希望在http://bobby-tables.com

上阅读相关内容。