fql_query返回“Array”而不是name

时间:2010-11-14 20:05:26

标签: facebook facebook-fql

我正在尝试创建一个简单的fb应用程序,该应用程序使用fql_query检索用户的名称。

代码:

require_once'facebook.php';

$ appapikey ='xxxx';

$ appsecret ='xxxx';

$ facebook =新Facebook($ appapikey,$ appsecret);

$ user_id = $ facebook-> require_login();

$ q =“SELECT name FROM user WHERE uid ='$ user_id'”;

$ name = $ facebook-> api_client-> fql_query($ q);

echo“名称:$ name [0] [name]”;

输出: 名称:数组[名称]

你能告诉我这里出了什么问题吗? 谢谢!

3 个答案:

答案 0 :(得分:0)

即使结果中只有一个项目,FQL查询也始终返回一个数组。将结果视为普通SQL查询中的行。

答案 1 :(得分:0)

任何时候我在PHP中使用数组或数据库/ API调用I print_r($ array_name)来查看返回的内容。所以这个:

$name = $facebook->api_client->fql_query("SELECT name FROM user WHERE uid=$user_id");
print_r($name);

应该返回:

Array
(
    [0] => Array
    (
        [name] => First Last
    )
)

另一件事,我从未在FQL中的值/变量周围添加刻度线。

$q = "SELECT name FROM user WHERE uid=$user_id";
$name = $facebook->api_client->fql_query($q);

但是当你打印这个值时,应该在命名索引的引用周围放置单引号(在本例中为'name'),你不应该用双引号将它全部包装起来:

echo "Name : " . $name[0]['name'];

答案 2 :(得分:0)

错误就在这一行:

echo "Name : $name[0][name]";

你在引号中包含$ name [0] [name],这应该是

echo "Name : {$name[0][name]}";

    echo "Name : ".$name[0][name];