0

我希望下面的这段代码从 mysql 表中选择 2 行数据并将数据发布到 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);
    }
}
4

1 回答 1

3

$result您在while循环内覆盖

$result = curl_exec($curl_connection);

我不知道为什么,因为你似乎没有使用它。就够curl_exec了。

于 2013-04-02T14:04:24.630 回答