PDO and nested fetching

前端 未结 2 409
走了就别回头了
走了就别回头了 2020-12-20 01:13

Let\'s say I have something like this:

$db=new PDO($dsn);

$statement=$db->query(\'Select * from foo\');

while ($result=$statement->fetch())
{
    //d         


        
相关标签:
2条回答
  • 2020-12-20 01:48

    Sounds like what you are trying to accomplish is getting related data for the record you're looking at, why not just JOIN them in at the first query? The database will be better at connecting the dots internally than any amount of code can do externally.

    But to answer your question, I don't see the harm in opening another connection to the same DSN, most likely thing to happen is that you get another instance of the PDO object pointing to the same actual connection. Also, but depending on the amount of data you're expecting you could just fetchAll and loop over a php array.

    0 讨论(0)
  • 2020-12-20 01:49

    You should be able to do any other query you want inside your while loop, I'd say ; something like this :

    $db=new PDO($dsn);
    
    $statement=$db->query('Select * from foo');
    
    while ($result=$statement->fetch())
    {
        $statement2 = $db->query('Select * from bar');
        while ($result2=$statement2->fetch()) {
            // use result2
        }
    }
    

    Did you try that ? It should work...


    Still, if you can (if it's OK with your data, I mean), using a JOIN to do only one query might be better for performances : 1 query instead of several is generally faster.

    0 讨论(0)
提交回复
热议问题