PDO查询循环中的PDO查询失败

时间:2016-04-21 10:34:39

标签: php pdo

作为一个菜鸟,我发现这很难解释,但基本上我执行PDO查询并通过fetchAll获取结果(我使用的是Fetch,但有一个关于打开游标的建议,所以我改为fetchAll尝试防止这种情况)在该foreach中,我使用第一个查询中的一些数据执行另一个查询。

$ query5有两个结果,第一次迭代正常,但第二次迭代丢失了指针并返回Null。

我在这里尝试过很多东西,这让我很生气。这是我在Stackoverflow上的第一篇文章,但我已经使用了它很多,它几乎总能给我我想要的答案 - 希望是希望。

代码提取

    //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);
    }

Screen shop of Var_dump showing values in iteration 1 but nulls in 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 个答案:

没有答案