2016-06-30 8 views
0

Hier ist ein Auszug aus meinem PHP-Code:Array in Array mit PHP PDO holen Modi

Eine Funktion, die das Abfrageergebnis aus einer PostgreSQL-Datenbank druckt:

function getOuvrage(){ 
    $conn = PostgreConnection::getInstance(); 
    $sth = $conn->prepare("SELECT * FROM ouvrage WHERE code = '01'"); 
    $sth->execute(); 
    $result = $sth->fetchAll(); 
    print_r($result); 
} 

Ergebnis SQL-Abfrage in pgAdminIII ist:

code |forage | station | reserve 
---------+--------+-----------+---------- 
01  |  2 |  12 |  87 

Ergebnis print_r() Funktion ist:

Array([0] => Array ([forage] => 2 [0] => 2 [station] => 12 [1] => 12 [reserve] => 87 [2] => 87)) 

Meine Fragen: warum gibt es zwei Arrays und wie kann ich ein einfaches Array wie folgt erhalten:

Array([forage] => 2 [station] => 12 [reserve] => 87) 

EDIT:

ich das versucht:

$result = $sth->fetchAll(PDO::FETCH_ASSOC); 

Ich bekomme immer noch die 2 Arrays:

Array([0] => Array([forage] => 2 [station] => 12 [reserve] => 87)) 

Ich versuchte dies:

$result = $sth->fetchAll(PDO::FETCH_KEY_PAIR); 

ich dieses:

Array() 

ich keine Antwort auf meine Frage, auch in der «dupliziert» Frage von @Your Gemeinsamen wies finden konnten Sinn!

+1

Sie können diese Lektüre nützlich finden, [die vollständige Liste der PDO :: Konstanten FETCH] (https://phpdelusions.net/pdo/fetch_modes), nur um sich selbst zu machen aquianted mit was von PDO zu erwarten –

+0

Just edited mein Beitrag. Immer noch Probleme trotz des Dokuments, auf das Sie hingewiesen haben ... – wiltomap

+0

dann müssen Sie holen, nicht holen. Der eigentliche Zweck von fetchall ist es, das Array in Array zurückzugeben - daher ist es schwer, eine Frage wie "Warum kocht mir ein Kessel ein Wasser?" zu erwarten. –

Antwort

0

Die Lösung lautet:

$result = $sth->fetch(PDO::FETCH_ASSOC);