codeigniter动态插入字段数

时间:2011-09-23 01:24:31

标签: php codeigniter

我正在使用codeigniter并从关联数组(来自外部网站)对我的表执行一些插入和更新操作,其中字段的数量并不总是相同。

这是我的代码。

 $url ="http://api.peerindex.net/1/profile/show.json?id=$twittername&api_key=xxxxxx";

            $ch = curl_init();  
            $timeout = 5;  
            curl_setopt($ch,CURLOPT_URL,$url);  
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
            curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);  
            $peerdata = curl_exec($ch);
            curl_close($ch);
            if (strlen($peerdata)>10)
            {
                $peerdata = json_decode($peerdata);
                $this->db->where ("userid", $this->userinfo->userid);
                $this->db->update('userpeerdata', $peerdata);
               }

我的表userpeerdata包含大约6列,但有些列不存在。我想要的是它应该只采用数据库中存在的那些列,其他应该忽略。我怎么能这么简单呢。

enter image description here

1 个答案:

答案 0 :(得分:2)

您应该使用Codeigniter's array helper。它们有一个很好的小函数叫elements(),它只会提取你想要的元素:

$this->load->helper('array');
$peerdata = json_decode($peerdata);
// Include a list of all your columns in the table...
$peerdata = elements(array('name', 'twitter', 'known', 'authority'), $peerdata);

$this->db->where ("userid", $this->userinfo->userid);
$this->db->update('userpeerdata', $peerdata);