0

所以,我正在尝试做一个简单的查询,当我手动将 URL 作为字符串输入时,它可以正常工作。但是当我把它作为一个变量时它不起作用。我什至检查了变量,变量中有 URl。永远不要将变量放在 WHERE 语句中,因此不确定它是回声还是什么,只是似乎没有任何作用。

$external_result = $facebook->api(
    array(
        'method' => 'fql.query',
        'query' => 'SELECT share_count, 
                           like_count, 
                           comment_count, 
                           total_count 
                      FROM link_stat 
                     WHERE url="{$urlf}";'
    )
);

echo $external_result[0]['total_count'];
4

4 回答 4

1

单引号字符串不允许变量插值:

$foo = 5;
echo("This is $foo"); # "This is 5"
echo('This is ' . $foo); #ditto
echo('This is $foo'); # "This is $foo"
echo("This is \$foo"); # ditto

我建议您阅读一些 PHP 教程或拿起一本书。

于 2012-12-10T20:35:29.187 回答
1

PHP 语法中的引号和引号字符串是有区别的。单引号字符串不提供变量插值。而双引号字符串确实允许您在字符串文字中插入变量。有关详细信息,请参阅PHP 字符串手册。

这是你需要做的。

$external_result = $facebook->api(
    array(
        'method' => 'fql.query',
        'query' => "SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url=\"{$urlf}\";"
    )
);

通过将该字符串周围的单引号替换为双引号,您现在可以让 PHP 替换$urlf为它的实际值。

于 2012-12-10T20:37:48.003 回答
0

将您的代码更改为:

$external_result = $facebook->api(
    array(
        'method' => 'fql.query',
        'query' => 'SELECT share_count, like_count, comment_count, 
                    total_count FROM link_stat WHERE url="' . $urlf . '";'
    )
);
于 2012-12-10T20:35:25.893 回答
-1

如果您要执行类似的操作,请使用双引号。

'query' => "
            SELECT share_count, like_count, comment_count, total_count 
            FROM link_stat WHERE url='{$urlf}';
           "
于 2012-12-10T20:35:13.180 回答