【问题标题】:facebook FQL query performance within foreach loop?foreach 循环中的 facebook FQL 查询性能?
【发布时间】:2012-02-17 06:07:54
【问题描述】:

我正在尝试从 facebook 的 FQL 请求一些信息,但请求有点慢。

$friend = "SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 30";

  $friendSQL = $facebook->fql($friend);
  foreach ($friendSQL as $friends_id){
    $uid2 = $friends_id['uid2']; 
     $query = "SELECT uid,username,name,pic_small FROM user WHERE uid='".$uid2."'";
     $friend_info = $facebook->fql($query);
    echo "<pre>";
    print_r($friend_info);
    echo "</pre>";
  }

所以基本上,我得到了 30 个朋友的列表,我正在尝试使用 foreach 循环从 uid2(这是我的朋友)获取其他信息

我注意到请求很慢。还有其他方法可以获取我朋友的信息吗?

谢谢!

【问题讨论】:

    标签: php facebook performance foreach


    【解决方案1】:

    您的选择语句可能类似于:

    SELECT uid,username,name,pic_small FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 30)
    

    这样您就不必再使用循环了。这与 FQL 多查询几乎相同。

    【讨论】:

    • 太棒了!我也正要发布这个 FQL。
    【解决方案2】:

    您的脚本很慢,因为它在每次迭代中都会发出新的 HTTP 请求,并且每个新请求都需要很长时间。正确的方法是使用FQL.multiquery。使用多重查询,您可以在一个 HTTP 请求中获取所需的所有信息,而无需使用 foreach。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多