エンコードされた配列をデータベースに格納します。デコードしようとすると、nullで返されます。json_decodeがnullを返す
[{"id":13,"qty":"1"}]
配列はPHPでエンコードされているため、問題の原因はわかりません。
おかげ
エンコードされた配列をデータベースに格納します。デコードしようとすると、nullで返されます。json_decodeがnullを返す
[{"id":13,"qty":"1"}]
配列はPHPでエンコードされているため、問題の原因はわかりません。
おかげ
は、印刷しよう:
json_last_error()
あなたは、データベース内の配列を格納したい場合は個人的にserialize();
とunserialize();
機能が良いだろう。 JavaScriptにJSON文字列を返すには、JSON関数を使用する必要があります。次に、データベースから戻って配列にデータを有効にする
$array = array('data','more data','superdata'=>'even more data');
$array = serialize($array);
// Store array in database after serialized
、あなたはでしょう...
// Fetch the data from the database
$data = $row['myDataArray'];
$array = unserialize($data);
echo $array['superdata']; // Would produce: "even more data"
うまくいけば、これはあなたの問題を少しあなたを助けます。 JavaScriptに送信するためにJSONに変換する必要がある場合は、json_encode($array);
関数を使用します。
"should"はここでは強く、特にJSONの結果は通常、基本型の 'serialize()'結果よりも短いためです。 –
大量のデータを格納していた場合は、影響が出る可能性があります。私はちょうどserializeがより信頼でき、JavaScript JSONではなくPHPだけで作業している最善の方法だと感じています。 –
私は別の文脈ではあるが、同様の問題がありました。私のケースでは、Javascript JSON.stringify
でエンコードされたJSON文字列をデコードし、隠しテキストフィールドに格納し、ページがPOST
edの後にPHPでデコードしようとしていました。デコードする前にstripslashes関数を適用すると便利でした。
$arrMyOutput = json_decode(stripslashes($yourJSON_string_goes_here));
ここでは正常に動作します。 –
問題が発生する可能性があるため、使用しているコードを表示してください... –
print_r(): 'Array([0] => stdClass Object([id] => 13、[qty ] => 1)) ' – Jonah