我的智慧结束了查询参数值应该是什么样子。因此,为了总结图API库中的多个查询,以下是执行它的代码方法,据我所知。
$param = array(
'method' => 'fql.multiquery',
'queries' => $multiQuery,
'callback' => '');
$queryresults = $facebook->api($param);
在Facebook的新PHP SDK库中使用此方法,有没有人使这个工作?如果是这样,你可以举例说明如何构建$multiQuery
变量的完整值吗?
我已经花了几天时间来解决这个问题,而且我只是找到了旧的PHP库的exmaples。
答案 0 :(得分:2)
为什么总是在敲了几天之后,你问了一个问题,5分钟后,你想出了自己的答案。
所以这是我可爱的经历。
因为在PHP中你可以使用"
/ '
字符来启动一个文本字符串,所以我自己陷入双引号字符和单引号字符的翻转中。我突然意识到多查询中定义的查询是用双引号括起来的。
所以吸取了教训?如果你有一个在多个查询中使用字符串值的where子句,请确保pete的缘故是在你的过滤字符串值周围使用SINGLE QUOTES。
坏不好 - 这就是我做的。请注意myvalue和myothervalue周围的双引号。 NAUGHTY!$multiQuery = {
"query1":"select something from something where somecolumn = "myvalue"",
"query2":"select something from something where somecolumn = "myothervalue""
};
GOOD示例 - 现在查看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
变量的实际类型是什么(对于像我这样的新手),它只是一个字符串数据类型。它不是一个数组,没有比文本更好的了。
答案 1 :(得分: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); }
答案 2 :(得分: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);