0

取得:キャッチ可能な致命的なエラー:クラス stdClass のオブジェクトを文字列に変換できませんでした...次のコードから:

$url = "{$row['url']}";

$embed_info = json_decode($client->get('oembed', array('url' => $url)));
$sql="INSERT INTO persons (iframe) VALUES('$embed_info')";

$embed_info を文字列として機能させ、データベースにうまく入力するにはどうすればよいですか?

4

2 に答える 2

0

これを見て:

$embed_info = json_decode($client->get('oembed', array('url' => $url)));

呼び出しが JSON (文字列) を返すと仮定すると$client->get、それは保存したいものかもしれません。json_decodeその JSONを呼び出すと$embed_info、オブジェクト (デコードされた JSON) になります。PHP は暗黙的にオブジェクト$sql = "...$embed_info...";を文字列に変換しようとするため、次のようなことはできません。

JSON を保存するだけの場合は、json_decode呼び出しをスキップしてください。

于 2013-02-27T21:39:17.837 に答える
0

良い習慣かどうか、またはニーズに合っているかどうかはわかりませんが、オブジェクトをシリアル化し、base64 でエンコードすることができます (コンマやその他の文字の場合)。

$embed_info = json_decode($client->get('oembed', array('url' => $url)));
$data = base64_encode(serialize($embed_info));
$sql = "INSERT INTO persons (iframe) VALUES ('{$data}')";

後でオブジェクトを取得できます。

$sql = "SELECT iframe FROM persons WHERE <the where>";
// ... execute the query and fetch in $row
$embed_info = unserialize(base64_decode($row['iframe']));
// Now in $embed_info you get back the object 
// Note that the object's class must be loaded before do that
于 2013-02-27T21:50:04.827 に答える