Сбой запроса 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