タイトルが示すように、HTML フォームで送信されたデータを使用して、MySQL テーブルに行を挿入しようとしています。ただし、一部のフォーム フィールドは空白のままにすることができます。以前、select ステートメントの場合、このループを実行して空でないフィールドを確認し、SQL クエリ文字列を作成しました (説明のためだけに)。ここで、$sql は "SELECT * FROM table WHERE" のようなステートメントです。
for ($i = 0; $i < $size; $i++) {
if( $i != $size - 1 ) {
if( !empty($formData[$i]) ) {
$sql = $sql . " {$formFields[$i]} LIKE \"%{$formData[$i]}%\" and";
}
} else {
if( !empty($formData[$i]) ) {
$sql = $sql . " {$formFields[$i]} LIKE \"%{$formData[$i]}%\";";
}
else {
$sql = substr($sql, 0, strlen($sql)-4 ) . ";";
}
}
}
ただし、この場合、挿入フィールドの一部を空白にすることができますが、以前は "SELECT *" を実行していたため問題ではなく、WHERE 句だけを気にする必要がありました。for ループのモンスターを使用する以外に、これを行う簡単な方法はありますか?