Добрый день. Запускаю вот такой скрипт (фрагмент кода):
//SQL - запрос для поиска устаревших записей
$query="select MIN(actdate) as mindate from _eprog_tariffs";
//выведем результат запроса
for($i=0; $i<=$count; $i++) {
$arr=mysql_fetch_array($rows_selection);
$mindate=$arr["mindate"];
break;
}
база пуста, но запрос возвращает одну строку, где $mindate получается пустое значение. При любой попытке обращения к $mindate, например такому:
if(!empty($mindate))
вылазит ошибка 500.
Скрпиты запускается из 1С 8.2.
Подскажите пожалуйста, как лечить.
(0) Вообще-то обычный запрос отрабатывает точно также. И по-моему логично: функция должна вызывать значение. В данном случае MIN по пустой таблице возвращает NULL, что вполне соответствует (моим) представлениям о прекрасном. И 1С-ным тоже. Прогоните такой код:
тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Тест", Новый ОписаниеТипов("Число"));
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| тз.Тест
|ПОМЕСТИТЬ ВТ_Данные
|ИЗ
| &тз КАК тз
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МИНИМУМ(ВТ_Данные.Тест) КАК Тест
|ИЗ
| ВТ_Данные КАК ВТ_Данные";
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший