MS SQL Server PHP PDO Linux nextRowset - ОШИБКА!

158
22 ноября 2018, 15:10

в MS SQL через PDO для PHP при мульти-запросе, не возвращаются данные. Привожу условный код:

 $stmt = static::$dbh->prepare(' Declare @AccTranz Table (id int,dateCarry smalldatetime);
    insert into @AccTranz (id, dateCarry) 
       select null,null where 1=0; -- Ничего не вставляем в таблицу (where 1=0)
    select 1 as  id, 1 as idName ; -- запрос не возвращает данные
    ');
   $stmt->execute(array());
   $MyResult =$stmt-> fetchAll(PDO::FETCH_CLASS,MyClass);
         var_dump($MyResult); // array(0) { } 
     if (empty( $MyResult )) { // if multi-query
       do {
           $MyResult = $stmt-> fetchAll(PDO::FETCH_CLASS,'MyClass');   
          var_dump($MyResult );   //   array(0) { } array(0) { }
        } while ( $stmt->nextRowset());
     }

Этот же код через PDO PHP под Windows работает без ошибок, последний набор:

$MyResult = $stmt-> fetchAll(PDO::FETCH_CLASS,'MyClass');

вернет результат "select 1 as id, 1 as idName". В SSMS код так же работает без ошибок. Если изменить запрос:

insert into @AccTranz (id, dateCarry) 
   select null,null; -- Что-то добавить

Тогда вернется результат "select 1 as id, 1 as idName". Вопрос: как исправить? может есть какая-то настройка?

Решение такое: в начало пакета нужно поставить SET NOCOUNT ON; (для PDO драйвера под LINUX MS SQL):

SET NOCOUNT ON;
insert into @AccTranz (id, dateCarry) 
   select null,null where 1=0; -- Ничего не вставляем в таблицу (where 1=0)
select 1 as  id, 1 as idName ; -- запрос Возвращает данные!
READ ALSO
Возвращает null

Возвращает null

Когда пользователь входит в аккаунт, ему выводятся вся его информацияUsername выводится, а email нет

158
Странное поведение xdebug

Странное поведение xdebug

Возникла проблема при работе xdebug

175
Как получить все дочерние элементы при парсинге с помощью DiDOM

Как получить все дочерние элементы при парсинге с помощью DiDOM

Сайт-донор имеет такой вот блок со списком:

149
Поисковый движок для сайта

Поисковый движок для сайта

Я хочу организовать поиск по сайту, сайт многоязычный, есть два варианта для поиска: elasticsearch или sphinxВторой вариант мне показался проще в понимании...

185