首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook新的PHP SDK For Graph API - Multi Query

Facebook新的PHP SDK For Graph API - Multi Query
EN

Stack Overflow用户
提问于 2010-12-02 15:36:41
回答 3查看 6.7K关注 0票数 8

对于查询参数值应该是什么样子,我束手无策。因此,要对图形API库中的多查询求和,据我所知,下面是执行多查询的代码方法。

代码语言:javascript
复制
$param = array(
 'method' => 'fql.multiquery',
 'queries' => $multiQuery,
 'callback' => '');
$queryresults = $facebook->api($param);

在Facebook的新PHP SDK库中使用这种方法,有没有人做到了?如果是这样的话,您能不能去掉一个关于如何构建$multiQuery变量的完整值的示例?

几天来,我一直在努力解决这个问题,但我只找到了旧PHP库的示例。

EN

回答 3

Stack Overflow用户

发布于 2010-12-02 16:08:48

为什么总是在敲了几天的头之后,你问了一个问题,5分钟后,你自己就想出了答案。

所以这是我可爱的经历。

由于在PHP中可以使用"/'字符作为文本字符串的开头,因此我陷入了双引号字符和单引号字符的翻转。我突然意识到,在多查询中定义的查询是用双引号括起来的。

学到了什么?如果您的where子句在多查询中使用字符串值,请确保在过滤的字符串值两边使用单引号。

坏的坏的-这就是我所做的。注意myvalue和myothervalue两边的双引号。淘气!

代码语言:javascript
复制
$multiQuery = {
     "query1":"select something from something where somecolumn = "myvalue"",
     "query2":"select something from something where somecolumn = "myothervalue""
     };

一个很好的例子--现在看看myvalue和myothervalue。

代码语言:javascript
复制
$multiQuery = {
     "query1":"select something from something where somecolumn = 'myvalue'",
     "query2":"select something from something where somecolumn = 'myothervalue'"
     };

现在我可以..。

代码语言:javascript
复制
$multiQuery = {
         "query1":"select something from something where somecolumn = 'myvalue'",
         "query2":"select something from something where somecolumn = 'myothervalue'"
         };

$param = array(       
     'method' => 'fql.multiquery',       
     'queries' => $multiQuery,       
     'callback' => '');       
$queryresults = $facebook->api($param);

如果你们中的任何人想知道$multiQuery变量的实际类型是什么(对于像我这样的新手),它只是一个字符串数据类型。它不是一个数组,没有比文本更好的东西了。

票数 2
EN

Stack Overflow用户

发布于 2011-02-13 00:36:46

考虑一个节点id数组,将它们各自的url作为值,您将拥有

代码语言:javascript
复制
/**
 *A JSON-encoded dictionary of the queries to perform. The array contains a set of key/value pairs.
 *Each key is a query name, which can contain only alphanumeric characters and optional underscores.
 *Each key maps to a value containing a traditional FQL query.
 */
$fql = '{';
foreach ($path as $key1 => $value1) {
    $fql .= '"' . $key1 . '":"SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url=\'' . $value1 . '\'",';
}

$fql .= '}';

$param = array(
    'method'   => 'fql.multiquery',
    'queries'  => $fql,
    'callback' => ''
);
try {
    $fqlresult = $facebook->api($param);
} catch (FacebookApiException $e) {
    watchdog('Facebook Query', 'Parsing error on node @node | @error', array('@node' => $key1, '@error' => $e), WATCHDOG_DEBUG); }
票数 1
EN

Stack Overflow用户

发布于 2013-02-22 11:58:47

您可以尝试这样做:

代码语言:javascript
复制
$multiQuery= array ("query1" => "query #1 goes here","query2" => "query #2 goes here");

$param = array(
 'method' => 'fql.multiquery',
 'queries' => $multiQuery,
 'callback' => '');

$queryresults = $facebook->api($param);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4332739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档