3

让我先说我的代码似乎适用于我测试过的所有用户,但只有一个。

我正在使用以下多重查询来获取用户的相册和封面图像数据:

{
   "album_query": " SELECT aid, object_id, name, modified, size, link, cover_pid FROM album WHERE owner = me() ORDER BY modified DESC",
   "cover_query": " SELECT pid, src_small, src_small_width, src_small_height FROM photo WHERE pid IN (SELECT cover_pid FROM #album_query)"
}

查询按预期工作。它返回的援助是 100002647632588_33813 和 100002647632588_19303。请注意,这是我见过的唯一一个辅助工具中有“_”的例子。

我的猜测是这就是问题所在,但继续前进。

稍后我运行以下 FQL 查询以获取给定相册中的最新 9 张照片:

SELECT pid, object_id, src, src_width, src_height, src_big, src_big_width, src_big_height, modified FROM photo WHERE aid = 100002647632588_19303 ORDER BY modified DESC LIMIT 0, 9

我得到以下回复:

{ error_code:“601”,error_msg:“解析器错误:位置 138 处出现意外 '_19303'。”,...}

这看起来像是 facebook 的一个错误,因为我使用的是他们提供的 id,但我希望更多的眼睛能帮我解决。

感谢您的任何帮助。

4

1 回答 1

5

您需要将“”放在辅助符周围 - “100002647632588_19303” 或使用 %22 正确转义它,以便它读取为字符串而不是数字 -

像这样 -

SELECT pid, object_id, src, src_width, src_height, src_big, src_big_width, src_big_height, modified FROM photo WHERE aid = "100002647632588_19303" ORDER BY modified DESC LIMIT 0, 9

或者

SELECT pid, object_id, src, src_width, src_height, src_big, src_big_width, src_big_height, modified FROM photo WHERE aid = %22100002647632588_19303%22 ORDER BY modified DESC LIMIT 0, 9
于 2012-01-19T11:30:58.457 回答