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: "パーサー エラー: 予期しない '_19303' 位置 138.", ...}

Facebookが提供したIDを使用しているため、これはFacebook側のバグのように見えますが、さらにいくつかの目で解決できることを願っています。

助けてくれてありがとう。

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 に答える