PDO, foreach bij elke query?
Code (php)
1
2
3
2
3
$this->query = "SELECT naam,categorie_id FROM formulieren WHERE id='".$tickets['formulier_id']."' LIMIT 1";
foreach($db->query($this->query) as $formulieren)
{
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)
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.
Code (php)
1
2
3
4
5
6
7
8
9
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'];
?>
$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.
Je kan ook fetchAll(PDO::FETCH_ASSOC) gebruiken zodat je in een keer een associatieve array eruit krijgt met elk element een record.
@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.
Code (php)
1
2
3
4
5
6
7
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);
?>
$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).
Oké bedankt! Ik ga ermee aan de slag!