私はPHP開発者ではありません。私はJSON文字列をデコードし、いくつかの値をmysqlデータベースに挿入しようとしています。私はjsonオブジェクト(jsonlintでテスト済み)の有効な配列を取得しているので、それらをデータベースに1つずつ追加しています。しかし、PHPのスロー:PHPは配列をオブジェクトとして扱います
<b>Fatal error</b>: Cannot use object of type stdClass as array
エラー。
これはコードです:
$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'}.'"';
エラーがライン$q = 'INSERT INTO...
からスローされ、印刷された変数は、実際に私の$配列が配列であることを示しています。
ARRAY1: ArrayL: 2ARRAY2: array
。私はここで間違って何をしていますか?デバッグ目的のために
使用var_dump:
json_decode(stripslashes($_POST['data']), true);
いくつかの他の有用なアドバイス:あなたは2番目のオプションの引数を配列にしたい指定しない限り
あなたは、配列の内容を印刷したい場合は、 'ますprint_r($配列)や' 'のvar_dump($配列)を使用し'ではなく、 –
をエコー[*** SQL INJECTION ***](http://wikipedia.org/wiki/SQL_injection)に注意してください! – deceze
私は誤って答えを見つけたかもしれませんが、誰かがjson_decodeの2番目のパラメータを使うことを提案しています。配列ではない配列を返すには、PHPがこのような愚かさですか? –