2012-10-31 114 views
0

我有簡單的模型,需要插入數據到我的表。所有工作正常,當我使用SQL和查詢,但當我嘗試使用插入功能,我得到一個錯誤,我需要使用集?Codeigniter插入數據(帶插入功能)

ID在我的數據庫是自動增量和日期時間戳

class Article extends CI_Model { 

private $id; 
private $title; 
private $text; 
private $date; 

public function __construct() 
{ 
    $this->load->database(); 
} 

public function save_article($title,$text) 
{ 
    $this->title=$title; 
    $this->text=$text; 
    $this->id=''; 
    $this->load->helper('date'); 
    $this->date=now(); 
    print_r($this); 
    //"INSERT INTO article VALUES ('','".$title."','".$text."',NOW())") 
    $this->db->insert('articles',$this); 
} 
} 

文章對象([ID:第一條:私人] => [標題:第一條:私人] => RRRRRRRRRRR【正文:文章:私人] => rrrrrrrrrrrrrrrrrr [日期:文章:私人] => 1351680951)

數據庫出錯

您必須使用 「設置」 方法來更新條目。

文件名:C:\ Program Files文件 (86)\的EasyPHP-12.1 \ WWW \博客\ SYSTEM \數據庫\ DB_active_rec.php

行號:在Article 1174個

+1

這可能是因爲你的'id'數據庫字段是唯一的,並且已經有一個''''值''''。 –

+0

我在db中的id是唯一的,AUTO_INCREMENT!它不需要插入該值,我試圖沒有設置ID,但我又一次得到相同的錯誤 – gogic1

+0

db是在哪裏定義的?你使用這個,但它不在構造函數中...嘗試設置this-> id = false –

回答

5

你的成員變量是private。 Active Record類無法使用get_object_vars來讀取它們。

private $id; 
private $title; 
private $text; 
private $date; 

使它們作爲public或在鍵 - 值對的數組傳遞到insert

+0

thx之前使用set()設置數據,它的工作原理如下:D – gogic1