2016-10-12 2 views
0

Ich versuche, den Wert aus einer Spalte mit dem Namen in php abrufen, bisher keinen Erfolg.erhalten Wert von einer Nummer namens Spalte

Angenommen, ich habe diese Spalten in einer Tabelle msql

id name someotherfield 200 404 500

In php (laravel tatsächlich) führe ich die Abfrage

SELECT * FROM table 

Ich bin in der Lage, die Ergebnisse zu drucken, und alles ist gut.

Log::debug($row) 

Nun, wenn ich versuche, einen einzelnen Wert aus der Anzahl namens Feld zu nehmen, nicht PHP und wird immer wieder empty

Das ist, was ich versuchte (mit Objekt oder ein Array ist das gleiche für mich) :

$row->{200} // empty 
$row[200] // empty, of course 

$field = 200; 
$row[$field]; // empty 
$row["$field"]; // empty 
$row->$field // empty 

Gibt es eine Möglichkeit, dies zu tun? Danke.

Edit (mein Code): nicht über das Objekt oder Array keine Sorge, jede Lösung gültig ist (wie Sie das 100 Feld 2 als Wert sehen

PHP:

$row = \App\APIList::first(); 

Log::debug($row); 
Log::debug("My value is: " . $row['100']); 
Log::debug("My value is: " . $row->{'100'}); 
Log::debug("My value is: " . $row[100]); 

echo "My value is: " . $row['100'] . "<br />"; 
echo "My value is: " . $row->{'100'} . "<br />"; 
echo "My value is: " . $row[100] . "<br />"; 

LOGS :

[2016-10-12 09:51:43] local.DEBUG:  {"id":1,"function_name":"xxx","verb":"POST","usage":"xxx","call_body":"xxx ","headers":null,"isReady":1,"used":0,"failures":0,"reason":null,"last_error":null,"100":2,"101":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0,"418":0,"422":0,"426":0,"449":0,"451":0,"500":0,"501":0,"502":0,"503":0,"504":0,"505":0,"509":0,"created_at":"2016-10-12 09:03:29","updated_at":null} 
[2016-10-12 09:51:43] local.DEBUG: My value is: 
[2016-10-12 09:51:43] local.DEBUG: My value is: 
[2016-10-12 09:51:43] local.DEBUG: My value is: 

ECHO:

My value is: 
My value is: 
My value is: 

bearbeiten 2:

php:

if ($row->{'100'} > 0) { 
    Log::debug("Ok, got it"); 
} else { 
    Log::debug("No way"); 
} 

Protokolle:

[2016-10-12 10:01:59] local.DEBUG: No way 
+1

Try '$ row [ "200"]' – Naruto

+0

array ("id" => 2, "name" => "hallo")); \t echo $ a ["200"] ["id"]; ?> Verstehe das. –

Antwort

2

einfach den numerischen Wert in Anführungszeichen wickeln:

Wenn $row ein Array

echo $row['200'];

Behandeln Sie es auf die gleiche Weise wie ein assoziatives Array. Die Zahl 200 unterscheidet sich nicht von einem String-Schlüssel ‚foo‘ zum Beispiel

Und wenn es ein Objekt ist:

echo $row->{'200'};

+0

Nicht funktioniert, weiß nicht, ob ich es bin, aktualisieren Sie den Haupt-Thread mit meinem effektiven Code –

+0

@GummaMocciaro Ok, so '$ row' ist ein Objekt. Probieren Sie einfach $ Zeile -> {'100'} ', sonst nichts. Dies ist die korrekte Syntax, alles andere wird fehlschlagen. Sehen Sie, was passiert – dimlucas

+0

Ich tat das, wie Sie in meinen Protokollen/Code (bearbeiteter Haupt-Thread) sehen können –

Verwandte Themen