За последние 24 часа нас посетили 19249 программистов и 1608 роботов. Сейчас ищут 867 программистов ...

запрос PDO query() при втором вызове возвращает false

Тема в разделе "PHP и базы данных", создана пользователем Php_, 1 апр 2013.

  1. Php_

    Php_ Активный пользователь

    С нами с:
    22 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Добрый день уважаемые форумчане, подскажите пожалуйста в чем может быть ошибка.
    Есть сервер MySQL с несколькими подготовленными процедурами, и скрипт который с помощью pdo_mysql делает запросы к бд получает результат и выводит, изначально все работало нормально, после переустановки ОС заново установил Apache, MySQL, PHP, возможно отличные от первоначльных версий по, вроде бы установил те же настройки в php.ini но появилась проблема, выполняется только первый запрос к бд, то есть все остальные возвращают false, хоят все процедуры работают в консоли сервера mysql, пробовал удалять результат запроса, то есть переменную путем присваивания значения null, даже есть таткая странность вставки php кода с запросами и обработкой результата в html в первой вставке переменная доступна, то есть результат запроса, а во второй вставке буквально через нескольок строчек кода html между выводом с помощью php уже false, пробовал закрывать курсор после вывода, как сказано в мануале - не сработало, или другую переменную использовать, результат одинаковый, может быть что-то упустил в настройках.
    Код (Text):
    1. <table border="1" width="100%">
    2.         <tr>
    3.             <th>id</th>
    4.             <th>Название</th>
    5.             <th>Категория</th>
    6.             <!--<th>Дата</th>!-->
    7.             <!--<th>Пользователь</th>!-->
    8.             <th>Опции</th>
    9.         </tr>
    10.         <?php      
    11.         $res = $db->query('CALL sp_getIngredients()');
    12.         foreach($res as $v){
    13.             echo "<tr>";
    14.                 echo "<td>".$v['idingredients']."</td>";
    15.                 echo "<td>".$v['nameingredients']."</td>";
    16.                 echo "<td>".$v['category']."</td>";
    17.                 //echo "<td>".$v['date']."</td>";
    18.                 //echo "<td>".$v['name']."</td>";
    19.                 echo "<td><a href='".$_SERVER['PHP_SELF']."?del=".$v['idingredients']."&name=ingredients'>Удалить</a></td>";
    20.             echo "</tr>";
    21.         }
    22.         ?>
    23.     </table>
    то уже следующий код выдаст предупреждение: Warning: Invalid argument supplied for foreach()
    Код (Text):
    1. <?php
    2.                 $res = $db->query('CALL sp_getIngredients()');
    3.                 foreach($res as $v){
    4. //вывод элементов объекта PDO
    5.                 }
    6.  ?>
    все это в одном файле подключение к бд происходит один раз при запуске скрипта
    Заранее благодарен за помощь.
    (P.s. может подскажите в каком направлении искать)
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну может у юзера ограничения на количество запросов стоят? =) в единичку размером.
     
  3. Php_

    Php_ Активный пользователь

    С нами с:
    22 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    разве что при сборке дистрибутива сервера разработчики пошутили, это все на локальном пк :)
    а еще вопрос если переписать на mуsqli, и есть ли смысл без острой необходимости использовать PDO, если в преспективе смотреть на фреймворк Yii, собственно говоря PDO использовал т.к. нужно было быстро найти способ вызова процедур, плюс есть еще с параметрами в другой части скрипта. Спасибо за отклик)
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    у пдо есть одна задача - это чтобы БД можно было сменить.
    При этом не забывайте, что у каждой бд есть свои хитрости и плюшки, которые вы либо хотите использовать, либо вам плевать.

    а если у вас есть осознанный выбор БД и вы хотите использовать конкретные ее механизмы, то вы будете использовать ту БД, которую хотите. =)
    А если вам плевать и вы не знаете никаких уникальных плюшек, без которых просто не жить - то юзайте мускул или пдо - один хрен.
     
  5. Php_

    Php_ Активный пользователь

    С нами с:
    22 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    спасибо, попробую mysqli