我希望下面的这段代码从 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/