В БД у меня есть таблица с полем «fk_ownerID». По умолчанию, когда я добавляю новую строку таблицы, «fk_ownerID» пуст. В Toad для MySQL это показано как {null}. Если «fk_ownerID» присваивается значение, и я позже удаляю это значение, я устанавливаю fk_ownerID = «».
Теперь у меня есть следующий код:
$result = $dal->getRowByValue('tableName','id', $_POST['myID']); // Check to see if any rows where returned if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_array($result)) { $ownerID = $row["fk_ownerID"]; } }
Теперь переменная $ ownerID должна иметь число или нет. Но я не уверен, как это проверить. В настоящее время я делаю это:
if ( (strlen($ownerID) == 0) || ($ownerID == '0') || ($ownerID == 'null') )
Но я уверен, что только один из этих тестов должен быть необходим.
Каков наилучший способ проверить, пустое ли поле строки или null?
Используйте empty () и / или is_null ()
http://www.php.net/empty http://www.php.net/is_null
Пустое само по себе достигнет вашего текущего использования, is_null просто сделает возможным больше контроля, если вы хотите различать поле, которое является null, и поле, которое пусто.
Вы можете использовать функцию is_null ().
http://php.net/manual/en/function.is-null.php : в комментариях:
mdufour at gmail dot com 20-Aug-2008 04:31 Тестирование поля NULL / столбца, возвращаемого запросом mySQL.
Предположим, вы хотите проверить, поле / столбец «foo» из данной строки таблицы «bar», когда>, возвращаемый запросом mySQL, равен нулю. Вы просто используете функцию is_null ():
[connect…] $qResult=mysql_query("Select foo from bar;"); while ($qValues=mysql_fetch_assoc($qResult)) if (is_null($qValues["foo"])) echo "No foo data!"; else echo "Foo data=".$qValues["foo"]; […]
Кроме того, не забудьте оператор ===, когда вы работаете с числами, которые могут означать «null» или «0», или возвращать какую-либо форму false или null, которая не является тем, что вы ищете.
select FOUND_ROWS();
не вернется. записей, выбранных по запросу select.
предполагать
$row=mysql_fetch_row($rc) and if you want to check if row[8] is null then do $field=$row[8]; if($field) echo ""; else echo "";