Перейти к содержанию

\IPS\Db::i()->select


Рекомендуемые сообщения

При обращении к БД \IPS\Db::i()->select, если в таблице нет искомого значения возвращается FALSE или вообще ничего не возвращается?

Ссылка на комментарий
Поделиться на другие сайты

When prompted SELECT (\IPS\Db::i()->select) and the lack of results it returns FALSE, or Null or nothing is returned?

Ссылка на комментарий
Поделиться на другие сайты

Если запрос корректен, но нет строк ему соответствующих, то возвращается либо пустая строка, либо пустой массив, в зависимости от запроса.

Ссылка на комментарий
Поделиться на другие сайты

19 часов назад, Dmitriy427 сказал:

Если запрос корректен, но нет строк ему соответствующих, то возвращается либо пустая строка

При таком запросе

Спойлер

$nexus_expire = \IPS\Db::i()->select( 'ps_expire', 'nexus_purchases', array( 'ps_member=? AND ps_type=?', \IPS\Member::loggedIn()->member_id, $ps_type ), 'ps_id DESC' )->first();

 

ничего не возвращается, на форуме ips посоветовали сделать так

Спойлер

		try
		{
			$record	= \IPS\Db::i()->select( '*', 'table', array( 'field=?', 'something' ) )->first();
		}
		catch ( \UnderflowException $e )
		{
			$record = array();
		}

 

И да, так возвращает массив, даже если нет результат.

Ссылка на комментарий
Поделиться на другие сайты

Это уже обработка ошибки БД, а значит о корректном запросе речь не идёт.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Dmitriy427 сказал:

корректном запросе речь не идёт.

Что за бред? Отсутствие данных - это некорректный запрос?

Ссылка на комментарий
Поделиться на другие сайты

Мне сложно вам что либо объяснить, если вы не понимаете - что такое обработка исключений. В данном случае, ошибка генерируется методом "first()", класса "\IPS\Db::Select". 

Без конструкции "try-catch", в DEV-mode, ваш запрос будет генерировать такой вот экран:

5a01d0ec7db96_QIPShot-Screen214.thumb.jpg.bbdb0d0166f492914fcbe43b27578160.jpg

Ссылка на комментарий
Поделиться на другие сайты

И да, в вашем случае БД возвращает NULL.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...