0

您好,我正在尝试使用 foreach 循环中的值更新我的 sql 数据库中的列,但我得到了..为 foreach() 提供的参数无效

        foreach($ids as $id){
    $ch = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, "http://api.twitter.com/1/
    users/lookup.json?user_id=".$id."");
    curl_setopt($ch, CURLOPT_HEADER, 0);

    // grab URL and pass it to the browser
    $contents = curl_exec ($ch);
    $ok=array();
    $ok=json_decode($contents,true);
    foreach($ok['results'] as $p){
        $location=$p['location'];
        $query=mysql_query("UPDATE tweets SET location=".$location."
         WHERE from_user_id=".$id."");
        if($query){
            print'ok';
        }else{print'sds';}
    }
    // close cURL resource, and free up system resources
    curl_close($ch);
    }

我究竟做错了什么?

欢呼人们!!!!

4

2 回答 2

1

这就是你所需要的。它只拉最后一条推文,但这是一个好的开始。您对 twitter api 的调用不再有效,将其放在浏览器窗口中,您会发现它出错。

$contents = file_get_contents("http://api.twitter.com/users/".$id.".json");
$ok=json_decode($contents,true);

# For Testing Purposes
#echo '<pre>';
#var_dump($ok);
#echo '</pre>';

echo $ok['location'];
于 2012-07-29T15:48:28.547 回答
0

PHP 数组,无论是否关联,每对都有一个键和一个值。

所以,应该是foreach($ids as $id_number => $id) {我猜的,因为您没有提供有关$ids数组的更多信息。

于 2012-07-29T14:54:15.057 回答