Как вы проверяете, что поля данных не являются пустыми, прежде чем вставлять их в БД. Убедитесь, что используете empty (), чтобы убедиться, что поле пустое. Если вы используете оператор сравнения строк (т. Е. If ($ str! = "")), Он может привести к неожиданным результатам, если значение $ str равно false, null, 0 и т. Д. *
Edit:
empty () описание из руководства: http://us.php.net/manual/en/function.empty.php
Возвращаемые значения
Возвращает FALSE, если переменная имеет непустое и ненулевое значение.
Следующие вещи считаются пустыми:
* "" (an empty string)
* 0 (0 as an integer)
* "0" (0 as a string)
* NULL
* FALSE
* array() (an empty array)
* var $var; (a variable declared, but without a value in a class)
edit2:
isset () только проверяет, было ли переменной присвоено значение. Если переменная содержит пустую строку, isset () вернет true, потому что даже пустая строка имеет значение ('\ 0' отмечает конец строки в php).
isset () описание из руководства: http://us3.php.net/manual/en/function.isset.php
isset () вернет FALSE, если тестирует переменную, для которой установлено значение NULL. Также обратите внимание, что байт NULL ("\ 0") не эквивалентен константе PHP NULL.
комментарий от руководства:
isset не может надежно оценивать переменные с пустыми строками (необязательно NULL).
то есть
$ blankvar = ""; // isset вернет true на этом.
Это очень распространенная ошибка при обработке HTML-форм, которые возвращают пустые текстовые поля в скрипт. Вам лучше сделать это:
if ($ var! = "")
вернуть истину;
еще
вернуть ложь;
Это скорее практика программирования, а не недостатки функции. Поэтому, если у вас есть привычка инициализировать переменные, вы можете столкнуться с проблемами с isset (), если ваш код или php-проект станут очень большими.