我有一个包含复选框的网络表单。
提交表单时,会生成一个MySQL语句,将表单中的数据插入到数据库表中。
如果未选中任何复选框,MySQL将失败。如果我全部检查,那就可以了。
我意识到这是因为表单处理器(Perl程序)没有“看到”复选框,如果没有选中它们,因此MySQL语句无效,因为它试图提交不存在的数据。
我使用的解决方法是在创建MySQL语句之前执行这样的语句:
if (!defined $input{'checkbox_name'}) {$input{'checkbox_name'} = "";}
这有效,但我认为有更好的方法可以做到这一切。
答案 0 :(得分:0)
这几乎是你要做的就是断言某个变量有一个值,尽管Perl有一些语法可以使它更简洁:
$input{'checkbox-name'} //= '';
请参阅perlop
。
在早于5.10的Perl版本中,在引入//
和//=
运算符之前,
$input{'checkbox-name'} ||= '';
大致相同。