PDOStatement::fetchColumn()
PDOStatement::fetchAll
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::fetchAll — Hämtar de återstående raderna från en resultatuppsättning
Beskrivning
public PDOStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT): array public PDOStatement::fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array public PDOStatement::fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array public PDOStatement::fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array
Hämtar alla återstående rader från resultatuppsättningen kopplad till ett PDOStatement-objekt. Innehållet i den returnerade arrayen styrs av parametern mode, enligt samma principer som i PDOStatement::fetch().
Parametrar
- mode
- Styr innehållet i den returnerade arrayen. Standardvärdet är inställt på PDO::ATTR_DEFAULT_FETCH_MODE (som som standard är PDO::FETCH_BOTH).
- PDO::FETCH_COLUMN: Returnerar en array med värden från en enda kolumn i resultatuppsättningen. Kolumnen anges med parametern column.
- PDO::FETCH_UNIQUE: Indexerar den resulterande arrayen med värdet från en viss kolumn. Kolumnen måste innehålla unika värden, annars förloras data.
- PDO::FETCH_GROUP: Grupperar resultatet som en 3-dimensionell array där den första kolumnen används som index.
- PDO::FETCH_GROUP | PDO::FETCH_COLUMN: Grupperar resultatet som en 2-dimensionell array baserat på den första kolumnen. Arrayelementens värden är listor med motsvarande värden från den andra kolumnen.
- column
- Används med PDO::FETCH_COLUMN. Anger vilken 0-indexerad kolumn som ska hämtas.
- class
- Används med PDO::FETCH_CLASS. Returnerar instanser av den angivna klassen och mappar kolumnvärden till egenskaper i klassen.
- constructorArgs
- Används med PDO::FETCH_CLASS. Anger argument för klassens konstruktor.
- callback
- Används med PDO::FETCH_FUNC. Returnerar resultatet av att anropa en angiven funktion där varje rads kolumnvärden används som argument.
Returvärden
PDOStatement::fetchAll() returnerar en array som innehåller alla återstående rader i resultatet. Varje rad representeras som en array med kolumnvärden eller som ett objekt med egenskaper motsvarande kolumnnamnen. Om inga rader finns returneras en tom array.
Varning: Att använda denna metod för att hämta stora resultatmängder kan leda till hög resursförbrukning. Överväg att låta databasen filtrera och begränsa resultatet genom SQL-satser som WHERE och ORDER BY innan du hämtar och bearbetar data i PHP.
Fel/Uppslag
- Utlöser ett fel på nivån E_WARNING om attributet PDO::ATTR_ERRMODE() är inställt på PDO::ERRMODE_WARNING.
- Kastar ett PDOException-fel om attributet PDO::ATTR_ERRMODE() är inställt på PDO::ERRMODE_EXCEPTION.
Ändringslogg
- Version
- 8.0.0 Denna metod returnerar alltid en array. Tidigare kunde den returnera false vid misslyckande.
Exempel
Exempel 1: Hämta alla återstående rader
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* Hämta alla återstående rader */ print "Hämta alla återstående rader:\n"; $result = $sth->fetchAll(); print_r($result); ?>
Möjlig utdata:
Hämta alla återstående rader: Array ( [0] => Array ( [name] => apple [0] => apple [colour] => red [1] => red ) [1] => Array ( [name] => pear [0] => pear [colour] => green [1] => green ) [2] => Array ( [name] => watermelon [0] => watermelon [colour] => pink [1] => pink ) )
Exempel 2: Hämta värden från en enda kolumn
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* Hämta alla värden från den första kolumnen */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
Möjlig utdata:
array(3) { [0] => string(5) "apple" [1] => string(4) "pear" [2] => string(10) "watermelon" }
Exempel 3: Gruppera värden efter en kolumn
<?php $insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)"); $insert->execute(array('apple', 'green')); $insert->execute(array('pear', 'yellow')); $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* Gruppera värden efter första kolumnen */ var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); ?>
Möjlig utdata:
array(3) { ["apple"]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } ["pear"]=> array(2) { [0]=> string(5) "green" [1]=> string(6) "yellow" } ["watermelon"]=> array(1) { [0]=> string(5) "pink" } }
Exempel 4: Instansiera en klass för varje rad
<?php class fruit { public $name; public $colour; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit"); var_dump($result); ?>
Möjlig utdata:
array(3) { [0]=> object(fruit)#1 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(5) "green" } [1]=> object(fruit)#2 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(6) "yellow" } [2]=> object(fruit)#3 (2) { ["name"]=> string(10) "watermelon" ["colour"]=> string(4) "pink" } }
Exempel 5: Anropa en funktion för varje rad
<?php function fruit($name, $colour) { return "{$name}: {$colour}"; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit"); var_dump($result); ?>
Möjlig utdata:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }
Se även
- PDO::query() - Förbereder och exekverar ett SQL-uttryck utan platshållare
- PDOStatement::fetch() - Hämtar nästa rad från en resultatuppsättning
- PDOStatement::fetchColumn() - Returnerar en enstaka kolumn från nästa rad i en resultatuppsättning
- PDO::prepare() - Förbereder ett uttryck för exekvering och returnerar ett statement-objekt
- PDOStatement::setFetchMode() - Ställer in standardhämtläget för detta statement
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/pdostatement.fetchcolumn.php
PHP
Funktioner
Funktionsreferens
Databas-tillägg
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp Huddinge som har sponsrat Linux.se med webbhotell.