【问题标题】:MySQL Statement Fails When Checkboxes Are Not Checked未选中复选框时 MySQL 语句失败
【发布时间】:2012-03-19 03:39:05
【问题描述】:

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

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

如果没有选中任何复选框,MySQL 将失败。如果我都检查它们,那么它可以工作。

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

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

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

这行得通,但我认为有更好的方法来完成这一切。

【问题讨论】:

  • 具体详细地说明故障是什么。 (提示:设置DBI_TRACE 以查看SQL 语句)。显示出现问题的相关 HTML 和 Perl 源代码,以便改进。
  • 谢谢,博。我会试试看。

标签: mysql html perl forms web


【解决方案1】:

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

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

perlop

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

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

基本上是等价的。

【讨论】:

  • 感谢您的回复!我不知道您发布的语法。我会尝试使用它。至少代码少了一点!
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多