Сбой запроса PDO в цикле запроса PDO

Как новичок я нахожу это трудно объяснить, но по сути я выполняю запрос PDO и получаю результаты через fetchAll (я использовал Fetch, но было предложение об открытых курсорах, поэтому я переключился на fetchAll, чтобы попытаться предотвратить это) и в этом foreach я выполняю другой запрос, используя некоторые данные из первого запроса.

В $query5 есть два результата, и первая итерация работает нормально, но вторая итерация теряет указатели и возвращает Null.

Я много чего пробовал здесь, и это сводит меня с ума. Это мой первый пост в Stackru, но я использовал его очень часто, и он почти всегда дает мне ответ, который я ищу - он надеется.

Извлечение кода

    //initialise array
    $parvalues = array();

    //Start by getting the rounds played by player
    $query5 = "select * from IN_holeresults
    where ho_playerkey = :namekey ";

    $stmt5 = $pdoconn->prepare($query5);
    $stmt5->bindValue(':namekey', $namekey) ;
    $stmt5->execute();

    $results5 = $stmt5->fetchAll(PDO::FETCH_ASSOC);
    foreach($results5 as $row5)
    {
        //fetch the course info i.e. the Par value
        $query6  = "
        select * from IN_events, IN_venues
            where ev_venuekey = ve_key  
            and  ev_number =  :evnumber
            and ev_year = :evyear
        ";
        $stmt6 = $pdoconn->prepare($query6);
        $stmt6->bindValue(':evnumber', $row5['ho_eventkey']) ;
        $stmt6->bindValue(':evyear', $row5['ho_year']) ;
        $stmt6->execute();

        $row6 = $stmt6->fetch();
        //loop round holes and get par values and store in array
        for ($j=1; $j<=18; $j++)
        {
            $parvalues[$j] = $row6['ve_parh'.$j];
        }
        var_dump($parvalues);
    }

Экран магазина Var_dump показывает значения в итерации 1, но нули в int#2

Дополнительная информация: У меня есть следующее в коде.

    ini_set('display_startup_errors',1);
    ini_set('display_errors',1);
    error_reporting(E_ALL);

плюс

$pdoconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Также я знаю, что первая итерация работает (поэтому SQL работает, по крайней мере, на этом первом проходе), поскольку изображение на экране показывает, что в массиве есть значения. На второй итерации Xdebug показывает row6 как false.

Любая помощь по дальнейшей отладке с благодарностью получена.

Tony

0 ответов

Другие вопросы по тегам