Опасен мир веб-программиста. Удивительные чудеса поджидают его за каждым файлом.
Вот пример:
$ret = $db->query($sql);
echo "numColumns()=".$ret->numColumns();
echo "columnType(0)=".$ret->columnType(0)."<br>";
if (($ret->numColumns() > 0) && ($ret->columnType(0) != SQLITE3_NULL))
{
echo "in!";
}else
{
echo "out!";
return false;
}
Вот результат:
numColumns()=1columnType(0)=5
out!
Весьма неожиданно. И тут программист начинает подозрительно посматривать на константу SQLITE3_NULL, которая оказывается равна 5.
Тю — скажете вы — на то они и константы чтобы не возиться непосредственно с числами. Не твоё, программист, собачье дело какое там числовое значение у этой константы.
Вот только беда в том что значение columnType всегда равно SQLITE3_NULL. Есть поле? Его тип NULL. Нет поля? Его тип NULL. NULL всегда. NULL во всём. Улю-лю, ура!
Вот так и живём.