未选中复选框时,MySQL语句失败

时间:2012-03-18 18:07:34

标签: mysql html perl forms web

我有一个包含复选框的网络表单。

提交表单时,会生成一个MySQL语句,将表单中的数据插入到数据库表中。

如果未选中任何复选框,MySQL将失败。如果我全部检查,那就可以了。

我意识到这是因为表单处理器(Perl程序)没有“看到”复选框,如果没有选中它们,因此MySQL语句无效,因为它试图提交不存在的数据。

我使用的解决方法是在创建MySQL语句之前执行这样的语句:

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

这有效,但我认为有更好的方法可以做到这一切。

1 个答案:

答案 0 :(得分:0)

这几乎是你要做的就是断言某个变量有一个值,尽管Perl有一些语法可以使它更简洁:

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

请参阅perlop

在早于5.10的Perl版本中,在引入////=运算符之前,

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

大致相同。