2016-05-10 4 views
0

Ich wollte alle Arrays aus meiner Datenbank in einem JSON-Encode hinzufügen und später dekodieren .. aber ich stieß auf eine Sache, die ich nicht zu beheben weiß.Hinzufügen von Arrays aus der Datenbank in einem JSON-Encoding

Ich versuche, alle Arrays aus der SQL-Abfrage in einem Array hinzufügen und dann dieses Array mit allen Arrays darin zu kodieren.

Mein aktueller Code:

 $dbh = new PDO('mysql:host='.$this->server.';dbname='.$this->database.'', $this->user, $this->pass); 
     $result = array(); 
     foreach($dbh->query('SELECT * from bier') as $row) { 
      $result[] += $row; 
     } 
     print json_encode($result); 

Aktualisiert Code:

function getData() 
    { 
    try { 

     $dbh = new PDO('mysql:host='.$this->server.';dbname='.$this->database.'', $this->user, $this->pass); 
     $result = array(); 
     foreach($dbh->query('SELECT * from bier') as $row) { 
      $result[] = $row; 
     } 
     $json = json_encode($result, JSON_PRETTY_PRINT); 
     var_dump($json); 

    } catch (PDOException $e) { 
     print "Error!: " . $e->getMessage() . "<br/>"; 
     die(); 
    } 
} 

Derzeit gibt: Boolean Falsch

+2

entfernen '+' von dieser Aussage 'führen $ [] + = $ row;'. –

+0

@RajdeepPaul Ich habe das versucht, aber dann zeigt es nichts, wenn ich versuche, es zu drucken – BananaCoder

+0

Schalten Sie Fehlerberichte ein. Fügen Sie diese Zeilen hinzu: error_reporting (E_ALL); ini_set ('display_errors', 1); 'an der Spitze Ihres PHP-Skripts und sehen, ob es einen Fehler ergibt oder nicht. –

Antwort

0

In PHP, die += Verbindung Operator verwendet wird, um „add & assign "; Dies funktioniert jedoch nicht wie erwartet beim Einfügen von Elementen in ein Array.

Ihr Code sollte funktionieren, wenn Sie die + aus dieser Zeile entfernen, wie @Rajdeep wies darauf hin.

Hier ist der Code, mit einigen Änderungen für Klarheit aktualisiert:

try 
{ 
    $data = new PDO('mysql:host='.$this->server.';dbname='.$this->database.'', $this->user, $this->pass); 
    $data->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $list = []; 

    foreach($data->query('SELECT * from bier') as $item) 
    { $list[] = $item; } 

    $json = json_encode($list, JSON_PRETTY_PRINT); 

    echo $json; 
} 
catch (PDOException $fail) 
{ 
    echo $fail->getMessage(); 
    exit; 
} 

Wie Sie wahrscheinlich feststellen; Die Zeichenfolge [] = nach einem Variablennamen (also einem Array) fügt das neue Element in das zugewiesene Array ein.

Der try --> catch Block sollte anzeigen, ob ein Problem aufgetreten ist.

Hier weitere Informationen darüber, wie auf Fehler überprüfen: http://php.net/manual/en/pdo.connections.php

+0

Vielen Dank! aber es scheint immer noch, dass, wenn ich versuche zu echo oder print es wird nichts angezeigt werden:/ – BananaCoder

+0

Stellen Sie sicher, dass die Datenbank Verbindung Einstellungen korrekt sind, und stellen Sie sicher, dass es Daten in der Datenbanktabelle 'bier' wie von vorgeschlagen Ihre 'select' Anfrage. – argon

+0

Das ist alles in Ordnung Ich habe es getestet – BananaCoder

Verwandte Themen