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}\";"
    )
);

その文字列を囲む一重引用符を二重引用符に置き換える$urlfと、PHP が実際の値に置き換えるようになります。

于 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 に答える