Facebook图形API的新PHP SDK - 多查询

问题描述:

我在我的智慧结束查询参数值应该看起来像什么。因此,为了在图API库中提供一个多查询,下面将是执行它的代码方法,据我所知。Facebook图形API的新PHP SDK - 多查询

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

在Facebook的新PHP SDK库中使用这种方法,有任何人使这项工作?如果是这样,你可以举一个例子来说明如何构建$multiQuery变量的完整值?

我一直在为此努力奋斗了几天,我只找到旧的PHP库exmaples。

为什么总是在打了几天脑袋后,你问了一个问题,5分钟后,你提出了自己的答案。

所以这里是我可爱的经历。

由于在PHP中,你可以使用一个"/'字符来启动一个文本字符串,我让自己卡在双引号字符和单引号字符的翻转中。据我了解,在多查询中定义的查询是用双引号括起来的。

那么经验教训?如果你有一个在多重查询中使用字符串值的where子句,请确保pete的缘故,在你的过滤字符串值周围使用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变量的实际类型是(对于我这样的新手),它只是一个字符串数据类型。这不是一个数组,没有比文本更漂亮的了。

+1

请周围放置的$ multiquery值单引号。 `$ multiquery ='{ “query1”:“从somecolumn = \'myvalue \'选择某些东西,” “query2”:“从somecolumn = \'myothervalue \'” }'选择某些东西'; ` – qasimzee 2011-08-12 07:40:35

考虑节点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); } 

你可以试试这个:

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

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

$queryresults = $facebook->api($param);