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