2012-04-10 27 views
0

このページには、データベースに最大10個のレコードを入力できるページがあります。私が抱えている問題は、多くの(ほとんどの)ケースでは、ユーザーは1つまたは2つのレコードを入力するだけですが、データベースの挿入はすべての空レコードを処理していることも示しています。私はNULL値を受け入れないようにDBを設定しましたが、空白の値はNULLと全く同じではないと思われます。そのため、レコードはまだ挿入されています。空のレコードがデータベースに挿入されないように、これをどのようにコード化できますか?PHPを使用してMySQL DBに挿入するときに空レコードを除外する

現在のコードを挿入:

<?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()チェックを行うだろう:右あなたの$_POST割り当て後

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

。あなたは魅力のように働いたhttp://bobby-tables.com

+0

にそのことについて少し読みたいかもしれませんので、あなたのコードは、SQLインジェクション攻撃に対して脆弱である全く

注意。どうもありがとう。これは初心者の方で、コア機能が動作した後に入力検証を行うよう計画しています。あなたが提供したリンクも良い助けになるはずです。ありがとう! –

+0

+1注射防御のため。 –

関連する問題