Portál AbcLinuxu, 12. května 2025 07:37
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);V sql dotazu mám nastavenou jako první položku tabulku s názvem 'key'
$sql = "SELECT `key`, `t1`, `t2` FROM `table` WHERE `t1` = ?;";a přesto se pole nevytvoří podle názvů klíčů z mysql ale vytvoří se tam číslování 0,1,2,3,4,5... Poradí někdo? Děkuji
fetchAll()
vrací řádky (číslované) a v každém řádku je pole.
Vrací to pole polí, nebo-li dvou rozměrné pole, přičemž první úroveň má číselné klíče, a druhá, v tomto případě, názvy sloupců.
1. řádek a sloupec 'key': echo $result[0]['key'];
echo $value['key'];
Projdi to normálně pomocí fetch().
Jinak nerozumím řeči tvého kmene:
$result = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach($result as $key => $value){ echo "The 'key' value: " . $value['key'] . " of row: $key\n"; }
$res = $db->prepare('SELECT * FROM table'); $res->execute(); while($row = $res->fetch(PDO::FETCH_ASSOC)){ print_r($row); }Na menší data, třeba i:
$res = $db->prepare('SELECT * FROM table'); $res->execute(); foreach($res->fetchAll(PDO::FETCH_ASSOC) as $row){ print_r($row); }
$res = $db->prepare('SELECT * FROM table'); $res->execute(); $res->setFetchMode(PDO::FETCH_ASSOC); // Toto může být nastaveno globálně. foreach($res as $row){ print_r($row); }
$result = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);Funguje to jen pro 2 sloupce.
$sql = "SELECT `key`, `key`, `t1`, `t2` FROM `table` WHERE `t1` = ?;"; $q->fetchAll(\PDO::FETCH_ASSOC | \PDO::FETCH_GROUP | \PDO::FETCH_UNIQUE)Klíčem bude první sloupec a ten bude odebrán z pole, pokud ji tam chceš zdvoj ji.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.