2012-03-18 6 views
0

私はチェックボックスを含むウェブフォームを持っています。チェックボックスがチェックされていないとMySQLステートメントが失敗する

フォームが送信されると、フォームからのデータをデータベーステーブルに挿入するMySQLステートメントが生成されます。

いずれかのチェックボックスがオンになっていない場合、MySQLは失敗します。私がそれらすべてをチェックすれば、それは動作します。

フォームプロセッサー(Perlプログラム)は、チェックされていないとチェックボックスが表示されないため、存在しないデータを送信しようとしているため、MySQLステートメントが無効です。

if (!defined $input{'checkbox_name'}) {$input{'checkbox_name'} = "";} 

動作することが、私はこのすべてを行うには良い方法がありますと仮定します。

私が使用-を回避するには、MySQLの文を作成する前にこのようなステートメントを行うことです。

$input{'checkbox-name'} //= ''; 

perlopを参照してください:Perlはこれをより簡潔にするためにいくつかの構文を持っているものの、ほとんどあなたには、いくつかの変数が値を持っていることを主張するためにしなければならないものだ

+0

具体的にどのような障害が発生しているのかを具体的に説明します。 (ヒント:[DBI_TRACE](http://p3rl.org/DBI#DBI_TRACE)を設定してSQL文を参照してください)。関連するHTMLとPerlのソースコードを表示して、問題を改善してください。 – daxim

+0

ありがとう、ボー。私はそれを試してみましょう。 –

答えて

0

。以前5.10よりPerlのバージョンで

////=オペレータが導入される前、

$input{'checkbox-name'} ||= ''; 

はほとんど同等です。

+0

応答ありがとう!私はあなたが投稿したその構文を知らなかった。私はそれを使ってみよう。少なくともコードは少し少なくなっています! –

関連する問題