gpt4 book ai didi

php - 如何使用此代码从数据库中的多个源添加数据?

转载 作者:行者123 更新时间:2023-11-29 21:30:58 24 4
gpt4 key购买 nike

所以,目前,我使用的代码仅输入数组中最后一个提要的数据,即数据库中的 feed4 ,并且不添加其他 3 个提要的数据,如何我可以解决这个问题吗,这是代码:

<?php

$db_hostname="";
$db_username="";
$db_password="";

$all_urls = array('feed1', 'feed2', 'feed3', 'feed4');

try
{


$db = mysql_connect($db_hostname,$db_username,$db_password);
if (!$db)
{
die("Could not connect: " . mysql_error());
}
mysql_select_db("dbname", $db);

foreach ($all_urls as $url) {

libxml_use_internal_errors(true);
$RSS_DOC = simpleXML_load_file($url);
}
if (!$RSS_DOC) {
echo "Failed loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}


$rss_title = $RSS_DOC->channel->title;
$rss_link = $RSS_DOC->channel->link;
$rss_editor = $RSS_DOC->channel->managingEditor;
$rss_copyright = $RSS_DOC->channel->copyright;
$rss_date = $RSS_DOC->channel->pubDate;
$rss_author = $RSS_DOC->channel->author;


foreach($RSS_DOC->channel->item as $RSSitem)
{

$item_id = md5($RSSitem->title);
$fetch_date = date("Y-m-j G:i:s");
$item_title = $RSSitem->title;
$item_date = date("Y-m-j G:i:s", strtotime($RSSitem->pubDate));
$item_time = date("H:i:s", strtotime($RSSitem->pubDate));
$item_url = $RSSitem->link;
$item_author = $RSSitem->author;


$item_exists_sql = "SELECT item_id FROM tablename where item_id = '" . $item_id . "'";
$item_exists = mysql_query($item_exists_sql, $db);
if(mysql_num_rows($item_exists)<1)
{
$item_insert_sql = "INSERT INTO tablename(item_id, feed_url, item_title, item_date, item_time, item_url, item_author, fetch_date) VALUES ('" . $item_id . "', '" . $url . "', '" . $item_title . "', '" . $item_date . "', '" . $item_time . "', '" . $item_url . "', '" . $item_author . "', '" . $fetch_date . "')";
$insert_item = mysql_query($item_insert_sql, $db);
echo "Inserted into Databse Successfully";
}
else
{

}
}


} catch (Exception $e)
{
echo 'Caught exception: ', $e->getMessage(), "\n";
}
?>

PS:我知道 mysql_* 已被弃用,我的生产代码将使用 mysqli。

最佳答案

我想您想为 $all_url 中的每个 url 运行脚本的空循环。目前,您在 $RSS_DOC=... 之后完成了对 $all_url 的循环。这就是为什么 $RSS_DOC 包含“feed4”、最后一个网址,仅此而已。

将右大括号移至末尾,就在 catch block 之前。

(不要对 libxml_get_errors() 包含所有 url 的消息感到困惑,因为它在 foreach 循环中得到了很好的填充。)

关于php - 如何使用此代码从数据库中的多个源添加数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35263760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com