2012-08-12 83 views
0

我需要从mysql数据库张贴多个消息到facebook墙。首先我从mysql获取数据并将其放在while循环中多个facebook张贴使用curl

while($row=mysql_fetch_array($result)) 
     { 

$des=$row[1]; 
$purpose=$row[3]; 
$price_sale=$row[4]; 
$price_rent=$row[5]; 
$img="example.com/images".mysql_result($result,0,2); 


    $attachment = array(
    'access_token' => "$token", 
    'message' => $des, 
    'picture' => $img, 
    'link' => "example.com" 
    ); 

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/xxxxxxxxxxx/feed'); 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //to suppress the curl output 
$result = curl_exec($ch); 
curl_close ($ch); 


echo $result; 

} 

$ result包含3条记录。但只发布第一行。 Plz为此提供了一个解决方案

+0

将'mysql_result()'指定给一个变量并将其移出循环,没有理由为每次迭代调用它。并停止使用mysql扩展,因为它已被弃用。看看[PDO](http://php.net/manual/en/book.pdo.php)或[MySQLi](http://php.net/manual/ru/book.mysqli.php)扩展。 – mintobit 2012-08-12 11:16:05

回答

1

尝试更改接受curl输出的变量的名称。您使用的是上述相同的变量。

while($row=mysql_fetch_array($result)) 
      { 

    $des=$row[1]; 
    $purpose=$row[3]; 
    $price_sale=$row[4]; 
    $price_rent=$row[5]; 
    $img="example.com/images".mysql_result($result,0,2); 


     $attachment = array(
     'access_token' => "$token", 
     'message' => $des, 
     'picture' => $img, 
     'link' => "example.com" 
     ); 

    $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/xxxxxxxxxxx/feed'); 

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //to suppress the curl output 
    $curlresult = curl_exec($ch); 
    curl_close ($ch); 


    echo $curlresult; 

    } 
+1

oops。我错过了那个变量。 – 2012-08-12 10:02:45