Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将xml文件放入数据库,然后检索它们_Xml_Codeigniter - Fatal编程技术网

如何将xml文件放入数据库,然后检索它们

如何将xml文件放入数据库,然后检索它们,xml,codeigniter,Xml,Codeigniter,我有个问题。是否有可能将我的xml文件放入数据库并从中访问它们。我有一个从xml文件获取内容的函数: function getFeed() { $content = file_get_contents('http://feeds.reuters.com/reuters/technologyNews'); $x = new SimpleXmlElement($content); foreach($x->channel->item as $entry) {

我有个问题。是否有可能将我的xml文件放入数据库并从中访问它们。我有一个从xml文件获取内容的函数:

function getFeed()
{
    $content = file_get_contents('http://feeds.reuters.com/reuters/technologyNews');
    $x = new SimpleXmlElement($content);
    foreach($x->channel->item as $entry) {
        $feeds = array('title' => (string)$entry->title
                );
        $this->session->set_userdata($feeds);
        $this->load->model('membership_model');
        $this->membership_model->feeds();
    }   
一个将标题插入数据库的模型,然后以链接格式获取标题。但我想这不是个好主意,因为它不起作用

function feeds()
{   
    $this->db->empty_table('feeds');
    $this->db->set('title',$this->session->userdata('title'));
    $this->db->insert('feeds');
    $get_feed = $this->db->get('feeds');
    foreach ($get_feed->result() as $row){
        echo "<a href='$row->title'>".$row->title."</a><br/>";
        }
函数提要()
{   
$this->db->empty_表('feeds');
$this->db->set('title',$this->session->userdata('title');
$this->db->insert('feeds');
$get_feed=$this->db->get('feed');
foreach($get\u feed->result()作为$row){
回声“
”; }
您可以使用

首先准备好要批量插入的数组

function getFeed()
{
    $content = file_get_contents('http://feeds.reuters.com/reuters/technologyNews');
    $x = new SimpleXmlElement($content);
    foreach($x->channel->item as $entry) {
        $feeds[] = array(
                         'title' => (string)$entry->title,
                         'url'=> (string)$entry->url, // ad more fields if needed                        
                );

        $this->load->model('membership_model');
        $this->membership_model->feeds($feeds);
    }
 //load view with data. No need to get same data from db again.
 $this->load->view("feed_list",array("feeds"=>$feeds));
}
在模型中:

function feeds($feeds_data)
{   
    $this->db->empty_table('feeds');   
    $this->db->insert_batch('feeds', $feeds_data);    
}
鉴于

 foreach($feeds as $f)
{
   echo "<a href='".$f["url"]."'>".$f["title"]."</a><br/>";
}
foreach($feed作为$f)
{
回声“
”; }
是否要将xml内容保存在表格的单个字段中?首先,我要保存标题、内容,如果可能的话,还需要保存标题的URL或散列?因此,您要将xml文件内容保存在列中,对吗?是的,然后从数据库中检索内容我要求您将整个文件内容存储在表格中e字段?或每个xml标记在表中都有列?url不起作用。在视图中,当我单击一个链接时,它不会在站点上重定向我。kumar_v.是否有codeigniter的on_duplicate_key_update函数?我只想插入尚不存在的行。如果该行存在,我想更新它。尝试以下操作: