所以,我正在尝试做一个简单的查询,当我手动将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'];
答案 0 :(得分: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教程或阅读一本书。
答案 1 :(得分:1)
PHP语法中的单个和 double 引用字符串之间存在差异。单引号字符串不提供变量插值。而双引号字符串允许您在字符串文字内插入变量。有关详细信息,请参阅the manual on PHP strings。
这是你需要做的。
$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
的实际值。
答案 2 :(得分: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 . '";'
)
);
答案 3 :(得分:-1)
如果你打算做那样的话,请使用双引号。
'query' => "
SELECT share_count, like_count, comment_count, total_count
FROM link_stat WHERE url='{$urlf}';
"