php - cURL POST,而

标签 php mysql curl

我希望下面的这段代码从 mysql 表中选择 2 行数据并将数据 POST 到 URL。

$qry = "SELECT id,email,forename,surname,ipaddress,optin_date,optin_url FROM $db_tble ORDER BY id ASC LIMIT 2";
$result = mysql_query($qry);
$num = mysql_num_rows($result); 

if($result) 
{
 $OK = 1;
/** start feed **/

//create array of data to be posted

while ($row = mysql_fetch_assoc($result)) 
{
// unset($post_items,$curl_connection,$result,$var,$info);
 $n++;

 $qry_id = $row["id"];
 $post_data['u'] = $testfeed_user;

 $post_data['p'] = $testfeed_pswd;

// Action data
$post_data['email'] = $row["email"];

$post_data['fname'] = $row["forename"];

$post_data['lname'] = $row["surname"];

$post_data['ip'] = $row["ipaddress"];               

$post_data['date'] = $row["optin_date"];

$post_data['url'] = $row["optin_url"];

//traverse array and prepare data for posting (key1=value1)

foreach ( $post_data as $key => $value) {
                                      $post_items[] = $key . '=' . $value;

    }

//create the final string to be posted using implode()

$post_string = implode ('&', $post_items);



//create cURL connection

$curl_connection = curl_init($post_url);


    //set options

// HTTP request method defaults to GET
     curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);

    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");

    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);

   curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);

   curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

   curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, 1);


//set data to be posted

 curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);



        //perform our request

    $result = curl_exec($curl_connection);


    //close the connection

curl_close($curl_connection);
unset($post_string);
    unset($post_data);
unset($post_items);
/** end feed **/ 
}

它因“PHP 警告:mysql_fetch_assoc():提供的参数不是...中的有效 MySQL 结果资源”错误而失败。

这通常意味着查询有错误,但下面的代码适用于该查询。所以,它一定是 while 循环中的某些东西打破了它,但我不知道是什么。

// echo "Select OK!";
$qry = "SELECT id,email,forename,surname,ipaddress,optin_date,optin_url FROM $db_tble ORDER BY id ASC LIMIT 2";
$result = mysql_query($qry);
$num = mysql_num_rows($result); 

if (mysql_num_rows($result) != 0) 
{
    $OK = 1;
    /** start feed **/

    //create array of data to be posted

    // $post_data['u'] = $testfeed_user;

    // $post_data['p'] = $testfeed_pswd;

    while ($row = mysql_fetch_assoc($result)) 
    {
        $qry_id = $row["id"];
        $post_data['u'] = $testfeed_user;

        $post_data['p'] = $testfeed_pswd;

                // Action data
        $post_data['email'] = $row["email"];

        $post_data['fname'] = $row["forename"];

        $post_data['lname'] = $row["surname"];

        $post_data['ip'] = $row["ipaddress"];               

        $post_data['date'] = $row["optin_date"];
        $post_data['url'] = $row["optin_url



          //traverse array and prepare data for posting (key1=value1)

        foreach ( $post_data as $key => $value) {

            $post_items[] = $key . '=' . $value;
                    }



        //create the final string to be posted using implode()

        $post_string = implode ('&', $post_items);



        echo "id=" . $qry_id . " - " . $post_string . "<br /<br />";
        unset($post_items);
    }
}

最佳答案

while 循环中覆盖 $result

$result = curl_exec($curl_connection);

我不确定为什么,因为您似乎没有使用它。只需 curl_exec 就足够了。

关于php - cURL POST,而,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15766109/

相关文章:

php - 使用 mySQL 查询填充 HTML 表单选择

php - 在mysql简化示例中查找重复行

php - 如何在拖放到 TinyMCE 时将 img 数据更改为 img url?

php - 成功上传到文件夹,但mysql上没有数据

Mysql触发器——捕获每一列的变化

javascript - 更新 Mysql 文本列,其中包含单引号。

mysql - SQL 查询连接表并比较总和以返回最大值

windows - 警告 : templates not found/share/git-core/templates | fatal: Unable to find remote helper for 'https'

php - 抓取 Soundcloud 图像

php - 调用同一服务器上提供的 Rest API 的最佳方式