Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: PDO

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
246978
Отправлено: 27 Февраля, 2013 - 12:55:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


Вызов хранимой процедурой с помощью PDO, есть проблема, если моя процедура возвращает два датасета, т. е, то результат работы PDO возвращает только первый датасет, как исправить?
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 12:57:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Не вникал в подробности, но, присвоить результат одного датасета в переменную, второй вернуть, а за первым сходить еще одним запросом.
 
 Top
246978
Отправлено: 27 Февраля, 2013 - 12:58:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


[quote=DeepVarvar][/quote]
Как-то криво, есть еще варианты?
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 13:08:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну, у меня закончились Хм
 
 Top
246978
Отправлено: 27 Февраля, 2013 - 13:45:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


спасибо, разобрался
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 13:47:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Покажите как Закатив глазки
 
 Top
246978
Отправлено: 27 Февраля, 2013 - 14:09:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $sql = 'CALL multiple_rowsets()';
  4. $stmt = $conn->query($sql);
  5. $i = 1;
  6. do {
  7.     $rowset = $stmt->fetchAll(PDO::FETCH_NUM);
  8.     if ($rowset) {
  9.         printResultSet($rowset, $i);
  10.     }
  11.     $i++;
  12. } while ($stmt->nextRowset());
  13.  
  14. function printResultSet(&$rowset, $i) {
  15.     print "Result set $i:\n";
  16.     foreach ($rowset as $row) {
  17.         foreach ($row as $col) {
  18.             print $col . "\t";
  19.         }
  20.         print "\n";
  21.     }
  22.     print "\n";
  23. }
  24. ?>
  25.  
  26.  

(Добавление)
Но есть, еще одна дилемма, если в процедуре в написании запроса есть ошибка, то при вызове такой процедуры происходит зацикливание. Вот как это отловить????
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 14:14:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Аааа, совершенно ожидаемо!
Где нашли этот CALL multiple_rowsets()?
К какой БД он относится?
 
 Top
246978
Отправлено: 27 Февраля, 2013 - 14:16:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


понятно, вы скажете что корректно писать запрос, но парой происходить когда есть под запрос который по логике всегда возвращает одну запись, но происходит некорректное изменение в БД и он такой запрос вернул больше чем одну запись.
(Добавление)
DeepVarvar пишет:
Аааа, совершенно ожидаемо!
Где нашли этот CALL multiple_rowsets()?
К какой БД он относится?


это пример процедуры, а пример взят с http://www.php.net/manual/ru/pdo.query.php
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 14:26:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




246978 пишет:
Но есть, еще одна дилемма, если в процедуре в написании запроса есть ошибка, то при вызове такой процедуры происходит зацикливание. Вот как это отловить????
Проверить синтаксическую валидность запроса или процедуры?
 
 Top
246978
Отправлено: 27 Февраля, 2013 - 14:30:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 273
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)

[+]


DeepVarvar пишет:
246978 пишет:
Но есть, еще одна дилемма, если в процедуре в написании запроса есть ошибка, то при вызове такой процедуры происходит зацикливание. Вот как это отловить????
Проверить синтаксическую валидность запроса или процедуры?


Синтаксис правильный, ошибка в том что под запрос вернет больше чем одно значение.
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 14:34:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




246978 пишет:
но происходит некорректное изменение в БД и он такой запрос вернул больше чем одну запись
Ну тут уж я не знаю, вопрос в ситуации, можно "свернуть ушки в kernel panic", можно попытаться на месте корректировать ошибку. Но тут уже зависит и от структуры БД и от задач.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB