8

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

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

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

几天来我一直在为此苦苦挣扎,我只是在旧的 PHP 库中找到示例。

4

3 回答 3

2

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

所以这是我可爱的经历。

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

所以吸取了教训?如果您有一个在多查询中使用字符串值的 where 子句,请确保为了皮特的缘故,您在过滤的字符串值周围使用 SINGLE QUOTES。

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

$multiQuery = {
     "query1":"select something from something where somecolumn = "myvalue"",
     "query2":"select something from something where somecolumn = "myothervalue""
     };

好例子 - 现在看看 myvalue 和 myothervalue。

$multiQuery = {
     "query1":"select something from something where somecolumn = 'myvalue'",
     "query2":"select something from something where somecolumn = 'myothervalue'"
     };

所以现在我可以...

$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变量的实际类型是什么(对于像我这样的新手),它只是一个字符串数据类型。它不是一个数组,没有比文本更漂亮的了。

于 2010-12-02T08:08:47.743 回答
1

考虑一个节点 id 的数组及其各自的 url 作为你将拥有的值

/**
 *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); }
于 2011-02-12T16:36:45.633 回答
0

你可以试试这个:

$multiQuery= array ("query1" => "query #1 goes here","query2" => "query #2 goes here");

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

$queryresults = $facebook->api($param);
于 2013-02-22T03:58:46.567 回答