Codeigniter Active Record 类插入
Posted
技术标签:
【中文标题】Codeigniter Active Record 类插入【英文标题】:Codeigniter Active Record Class Insert from 【发布时间】:2013-02-18 13:32:53 【问题描述】:我有一个新闻跟踪网站,我们已经迁移到 Codeigniter,我在使用 Codeigniter Active Record 时遇到了问题 - 我没有足够的知识来解决这个问题。
在旧代码中 - 我们执行插入操作,在插入操作中我们执行 SELECT FROM 以获取插入中一个字段的值
$this->db->query("INSERT INTO news_item_keywords_link (news_item_keyword, keyword)
SELECT $version_id, keyword FROM news_item_keywords_link WHERE news_item_keyword=$old_version
我曾尝试使用 Active Record 来执行此操作,但我不知道该怎么做,或者您可能无法使用 Active Record 来执行此操作。
我已经尝试了一些事情,我的问题是如何在 Active Record 的 INSERT 语句中执行内联 FROM。我试过这种方式,它没有工作得到语法错误,任何建议。
if ($this->db->insert('news_item_keywords', Array(
'news_item_keyword' => $version_id,
'keyword' => $this-db->select('keyword')
->from('news_item_keywords')
->where('news_item_keyword', $old_version);
)))
我应该安装 ORM 库来扩展功能吗? 如果是,推荐什么 ORM 库?
【问题讨论】:
标准sql查询有问题吗?好多了,活动记录只是一个查询生成器,结果是一样的 你的代码很混乱 【参考方案1】:第一件事将模型加载到控制器中......
型号:
function add($data)
$this->insert("tablename",$data);
function select_keyword($oldversion)
$this->db->select("keyword");
$this->db->where("news_item_keywords",$oldversion);
$this->db->get("news_item_keywords");
控制器:
function create()
$data = array('news_item_keyword' => $version_id,
'news_item_keywords' => $this->modelname->select_keyword("oldversion")
);
$this->modelname->insert($data);//successful!
【讨论】:
以上是关于Codeigniter Active Record 类插入的主要内容,如果未能解决你的问题,请参考以下文章
使用 CodeIgniter Active Record 语句
CodeIgniter Active Record 与常规查询
CodeIgniter Active Record 中的 SQL 注释?