Jump to content

Featured Replies

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/
Share on other sites

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/?&do=findComment&comment=138922
Share on other sites

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/?&do=findComment&comment=138923
Share on other sites
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();
		}

 

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/?&do=findComment&comment=138946
Share on other sites

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/?&do=findComment&comment=138995
Share on other sites
1 минуту назад, Dmitriy427 сказал:

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

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/?&do=findComment&comment=138996
Share on other sites

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

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

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/?&do=findComment&comment=138999
Share on other sites

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

Link to comment
https://ipbmafia.ru/topic/18685-ipsdbi-select/?&do=findComment&comment=139000
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.