Frage zu PDO

nchristoph

Erfahrenes Mitglied
Hallo,

ich hab mich gerade etwas in das Thema PDO und Prepared Statements eingelesen.

Ich habs soweit gecheckt, allerdings eines habe ich nirgends gelesen:

Wenn ich eine Abfrage innerhalb einer Abfrage machen muss also z.b.:

PHP:
 $sql = "SELECT * FROM blabla";
$erg = mysql_query($sql);
if(mysql_num_rows) { // gucken ob was im Query drinsteckt
    while($row = mysql_fetch_object($erg)) 
    {
    	mach irgendwas
        $sql1 = "SELECT * FROM blabla1 WHERE ID = $row->news";
        $erg1 = mysql_query($sql1);
        if(mysql_num_rows) { // gucken ob was im Query drinsteckt
            while($row1 = mysql_fetch_object($erg1)) 
            {
            	machnochwas
            }          
   	}
}

Wie müsste das mit PDO bzw. Prepared Statements aussehen?
 
Zuletzt bearbeitet:
Das könntest Du in dieser Form machen:
PHP:
// Hauptresult holen
$objResult = $objPdo->query( "SELECT * FROM blabla" );

// inneren Query vorbereiten
$objStmt = $objPdo->prepare( "SELECT * FROM blabla1 WHERE ID = :id" );

// Hauptresult abarbeiten
while ( $arrRow = $objResult->fetch( PDO::FETCH_ASSOC )
{
    // Parameter an das Prepared Statement binden
    $objStmt->bindParam( ':id', $arrRow['news'], PDO::PARAM_INT );

    // Prepared Statement ausfuehren
    $objStmt->execute();

    // Inneres Result abarbeiten
    while ( $arrInnerRow = $objStmt->fetch( PDO::FETCH_ASSOC )
    {
        // mach noch mehr
    }
}

Gruß
 
Zurück