2012-04-10 107 views
0

我有一個包含允許用戶在數據庫中輸入10條記錄的頁面。我遇到的問題是,在許多(大部分)情況下,用戶只會輸入一個或兩個記錄,但數據庫插入正在處理所有空白記錄並將其插入。我已經配置數據庫不接受NULL值,但我懷疑這些空白值不完全等於NULL,這就是爲什麼記錄仍然被插入。我怎樣編碼這個以便空白記錄不被插入到數據庫中。使用PHP插入MySQL數據庫時排除空記錄

當前插入代碼:

<?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/>"; 

回答

2

一個簡單的if()檢查會做:

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

$_POST任務之後。

請注意,你的代碼是完全容易受到SQL注入攻擊,因此你可能需要閱讀一些有關這個上http://bobby-tables.com

+0

工作就像一個魅力。非常感謝。這是一位新手,因此計劃在獲得核心功能後進行輸入驗證。您提供的鏈接也應該有一些很好的幫助。謝謝! – 2012-04-10 19:22:33

+0

+1注射防禦。 – 2012-04-10 22:09:32