获取:可捕获的致命错误:类stdClass的对象无法转换为字符串...来自以下代码:
$url = "{$row['url']}";
$embed_info = json_decode($client->get('oembed', array('url' => $url)));
$sql="INSERT INTO persons (iframe) VALUES('$embed_info')";
如何让$ embed_info作为字符串工作并很好地进入我的数据库?
答案 0 :(得分:0)
看着这个:
$embed_info = json_decode($client->get('oembed', array('url' => $url)));
假设$client->get
调用返回JSON(字符串),这可能是您要存储的内容。在该JSON上调用json_decode
后,$embed_info
就是一个对象(已解码的JSON)。您不能再执行$sql = "...$embed_info...";
之类的操作,因为PHP会尝试隐式尝试将 Object 转换为String。
如果您只想存储JSON,请跳过json_decode
来电。
答案 1 :(得分: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