WHERE语法问题中的PHP变量:(

时间:2012-12-10 20:32:41

标签: php variables

所以,我正在尝试做一个简单的查询,当我手动将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 个答案:

答案 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}';
           "