Ich bin kein PHP-Entwickler, damit ich etwas falsch machen kann. Ich versuche, JSON-Zeichenfolge zu dekodieren und einige Werte in mysql-Datenbank einzufügen. Ich bekomme ein gültiges Array von JSON-Objekten (getestet mit Jsonlint), also füge ich sie einzeln zur Datenbank hinzu. Aber php wirft:PHP behandelt ein Array als ein Objekt
<b>Fatal error</b>: Cannot use object of type stdClass as array
Fehler.
Dies ist der Code:
$array = json_decode(stripslashes($_POST['data']));
for($i = 0, $l = sizeof($array); $i < $l; $i++){
$obj = $array[$i];
echo "ARRAY1: ".$array;
echo "L: ".$l;
echo "ARRAY2: ".gettype($array);
$q = 'INSERT INTO dependencies SET projectID = "1", `from` = "'.$obj->{'From'}.'", to = "'.$obj->{'To'}.'", type = "'.$obj->{'Type'}.'", cls = "'.$obj->{'Cls'}.'", lag = "'.$obj{'Lag'}.'"';
Fehler aus der Leitung geworfen wird $q = 'INSERT INTO...
und die gedruckten Variablen zeigen, dass meine $ array in der Tat ein Array ist:
ARRAY1: ArrayL: 2ARRAY2: array
. Was mache ich hier falsch?
wenn Sie Inhalte eines Arrays drucken möchten, verwenden Sie 'print_r ($ array)' oder 'var_dump ($ array)' eher als Echo –
Kümmere dich darum [*** SQL INJECTION ***] (http://wikipedia.org/wiki/SQL_injection)! – deceze
Ich habe die Antwort möglicherweise irrtümlich gefunden, jemand schlägt vor, den zweiten Parameter für json_decode zu verwenden. Ist PHP dumm, ein Array zurückzugeben, das kein Array ist? –