PDO, foreach bij elke query?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dylan Onowerp

Dylan Onowerp

08/02/2012 12:36:04
Quote Anchor link
Ik ben sinds enkele dagen bezig met PDO, nu heb ik de volgende code om gegevens uit de database op te halen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
            $this->query = "SELECT naam,categorie_id FROM formulieren WHERE id='".$tickets['formulier_id']."' LIMIT 1";
            foreach($db->query($this->query) as $formulieren)
            {


is dit de juiste manier om 1 resultaat op te vragen? Het lijkt me nogal onlogisch om een foreach te gebruiken als je maar 1 resultaat wilt hebben (bijvoorbeeld een username van een gebruiker)
 
PHP hulp

PHP hulp

09/05/2024 23:39:47
 
- SanThe -

- SanThe -

08/02/2012 12:38:55
Quote Anchor link
Dylan Onowerp op 08/02/2012 12:36:04:
Het lijkt me nogal onlogisch om een foreach te gebruiken als je maar 1 resultaat wilt hebben (bijvoorbeeld een username van een gebruiker)


Dat is ook niet logisch.
 
B a s
Beheerder

B a s

08/02/2012 12:56:28
Quote Anchor link
Als je één resultaat via PDO wilt verkrijgen dan kun je dat op deze manier doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$db
= new PDO('connectie');

$sql-$db->prepare("SELECT naam,categorie_id FROM formulieren WHERE id=".$tickets['formulier_id']." LIMIT 1");
$sql->execute();
$result = $sql->fetch();

echo $result['naam'] . ' - ' . $result['categorie_id'];
?>


Verder kun je eens kijken naar de fetchcolumn functie. Ik heb even gezocht voor je, je kunt dit in mysql doen met mysql_result(), alleen bestaat er geen dergelijke functie in PDO.
 
Erwin H

Erwin H

08/02/2012 14:04:39
Quote Anchor link
Je kan ook fetchAll(PDO::FETCH_ASSOC) gebruiken zodat je in een keer een associatieve array eruit krijgt met elk element een record.
 
Dylan Onowerp

Dylan Onowerp

08/02/2012 14:07:04
Quote Anchor link
@Bas, bedankt ik doe het nu op 'jouw' manier!

@Erwin, ik snap nog niet heel veel van PDO en vind het al verwarrend dat je verschillende klasses moet gebruiken om 1 query uit te voeren ($sql en $db). Wat bedoel jij precies? Kan je een voorbeeld geven?

Bedankt allen.
 
Erwin H

Erwin H

08/02/2012 14:10:21
Quote Anchor link
Ik neem het voorbeeld van Bas, maar dan voor een query die meerdere records oplevert:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$db
= new PDO('connectie');

$sql->$db->prepare("SELECT naam,categorie_id FROM formulieren WHERE id=".$tickets['formulier_id']." LIMIT 1");
$sql->execute();
$result = $sql->fetchAll(PDO::FETCH_ASSOC);
?>

Nu is dus $result een array met alle records erin. Ook als het overigens maar een record is. Als je wilt weten hoe $result er precies uitziet, doe een print_r($result).
 
Dylan Onowerp

Dylan Onowerp

08/02/2012 14:22:16
Quote Anchor link
Oké bedankt! Ik ga ermee aan de slag!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.