0
我希望下面這段代碼從mysql表中選擇2行數據並將數據發佈到URL。cURL POST,而
$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);
}
}
謝謝,那就是問題所在。愚蠢的是,我爲了另一個目的而重新使用變量$ result來錯誤地陷入URL,HTTP響應和HTML內容的潛在問題。即從網站獲取「確定」。 – David