hey dit is waarschijnlijk een heel domme fout maar ik zie het niet, kan iemand eens kijken naar deze code

<?php
$dir = 'sqlite:DB.db';
$connection = new PDO($dir) or die("failed");
$query = 'SELECT * FROM Songs';
$results = $connection->query($query);
foreach($results as $s){
echo($s['Song']);
echo($s['Artist']);
}
?>

ik krijg deze foutmelding:
Warning: Invalid argument supplied for foreach()

ik heb gechecked en mijn results is een boolean. de query klopt.
Ik ken de PDO-functies niet zo, maar het lijkt er zeer sterk op dat je vergeet te fetchen.
Je voert de query uit maar je fetched niks.
Wat betekend fetchen dan?

Beetje vakjargon mensen :-)

@Jos: In jip en janneke taal gezegd zet je met de query() functie een resultatenlijst klaar op de database server. Met fetchAll() haal je deze in één keer op van de database server. met fetch_assoc() haal je rij voor rij op uit de database.
Je zegt het al, je result is een bool (true hoop ik voor je) dus je query klopt. Maar dat is ook het enige wat er in staat

Misschien heb je wat aan dit leesvoer http://php.net/manual/en/pdostatement.fetch.php


<?php
    $dir = 'sqlite:DB.db';
    $connection  = new PDO($dir) or die("failed");
    $query =  'SELECT * FROM Songs';
    $execute = $connection->query($query);
    $result = $execute->fetch(PDO::FETCH_ASSOC);
    foreach($results as $s){
        echo($s['Song']);
        echo($s['Artist']);
    }
?>


Ik gok dat bovenstaand voorbeeld wel werkt, toch?
ik zei het domme fout ^^

ik php is voor mij heel lang geleden. ik had ergens iets van fetchen gelezen maar ik kon het niet plaatsen in de code. ik heb het aan het werk gekregen, bedankt voor de hulp :)
Jos Brabant op 24/05/2016 11:22:12

ik zei het domme fout ^^

ik php is voor mij heel lang geleden. ik had ergens iets van fetchen gelezen maar ik kon het niet plaatsen in de code. ik heb het aan het werk gekregen, bedankt voor de hulp :)


"Een fout is pas een fout als je het weigert op te lossen", dit is enkel een leermoment geweest voor jou. Succes!

Reageren