Оператор MySQL терпит неудачу, когда флажки не проверены - PullRequest
0 голосов
/ 18 марта 2012

У меня есть веб-форма с флажками.

Когда форма отправляется, создается оператор MySQL, который вставит данные из формы в таблицу базы данных.

Если ни один из флажков не установлен, MySQL завершится ошибкой.Если я проверю их все, то это сработает.

Я понимаю, что это потому, что процессор форм (программа Perl) не "видит" флажки, если они не проверены, и, следовательно, оператор MySQL недопустимый, поскольку он пытается передать несуществующие данные.

Обходное решение, которое я использую, заключается в том, чтобы сделать следующее утверждение перед созданием оператора MySQL:

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

Это работает,но я предполагаю, что есть лучший способ сделать все это.

1 Ответ

0 голосов
/ 18 марта 2012

Это почти то, что вы должны сделать, чтобы утверждать, что некоторая переменная имеет значение, хотя в Perl есть некоторый синтаксис, чтобы сделать это более кратким:

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

См. perlop.

В версиях Perl более ранних, чем 5.10, до введения операторов // и //=,

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

в основном эквивалентны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...