如何通过cURL获取数据并等待结果?

时间:2017-10-24 09:54:33

标签: php curl

我有一份ID列表。对于测试,这是大约20项。

现在我想创建一个循环并从另一台服务器获取额外的数据。在这台服务器上,我准备了一个脚本 - 当你发送一个项目ID时,它将以JSON格式发回更多细节。

while($row = mysql_fetch_array($result)){   
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://test.mysite.abc/call/itemdetail/id/".$row['id_item']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $ret = curl_exec ($ch);
    curl_close ($ch);

    $result = json_decode($ret, true);

    print_r($result);
    vecho "<br>";
}

当我继续使用mysite.abc时,我会在给出项目ID时看到结果。但是当我运行脚本时,我有1个结果或3个结果和消息:

  

警告:mysql_fetch_array()期望参数1是资源,数组   在第65行的C:\ wamp64 \ www \ testfile.php中给出

我该怎么做?

1 个答案:

答案 0 :(得分:1)

检查mysql_query返回了有效的resource类型。

$result = mysql_query('SELECT column1, column2 FROM table WHERE 1=1'); // Change the SQL query with your

if ($result) {
    while($row = mysql_fetch_array($result)){   
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "http://test.mysite.abc/call/itemdetail/id/".$row['id_item']);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $ret = curl_exec ($ch);
        curl_close ($ch);

        $result = json_decode($ret, true);

        print_r($result);
        echo "<br>";
    }
}

最佳做法:,避免使用mysql_ *扩展名。此扩展在PHP 5.5.0中已弃用,并且已在PHP 7.0.0中删除。相反,请使用MySQLi或PDO_MySQL扩展。

考虑为您的案例使用多卷曲。查看此answer了解更多详情。

<强> Cheerse !!