2014-04-17 186 views
0

我試圖添加數據到使用CodeIgniter框架的數據庫。 DB方法返回true,但我在數據庫中沒有新的數據。 有我的控制器:Codeigniter - 將數據添加到數據庫

class Facebook extends CI_Controller 
{ 
    public function index() 
    { 
     if($this->input->is_ajax_request()) 
     { 
      $this->load->model('user_model','user'); 
      $data = array(); 
      $data['u_ip'] = $this->input->ip_address(); 
      $this->user->add_user($data); 
     } 
    } 
} 

而且有我的模型:

class User_model extends CI_Model 
{ 
    public function add_user($data) 
    { 
     $this->db->insert('users',$data); 
     //$res = $this->db->insert('users',$data); (true) 
    } 
} 

更新: 有我的數據庫: id_users(INT 255)AI,關鍵 u_ip (varchar 100)

+0

錯誤或警告? – Haseeb

+0

任何。我不知道它是什麼。 – Vitalii

+1

你能告訴我們表結構嗎?並且你正在加載DB ..? – Gautam3164

回答

0

您沒有提及任何您的查詢中的列名稱。試試下面的代碼 -

class User_model extends CI_Model{ 

public $db; 
public function __construct(){ 
    parent::__construct(); 
    $this->db = $this->load->database('default',true); 

} 

public function add($data) 
{ 
    $data = array(
     'title' => 'My title' , 
     'name' => 'My Name' , 
     'date' => 'My date' 
    ); 

    $this->db->insert('mytable', $data); 
} 
+0

這項工作:function __construct(){...} – Vitalii

1

另外,請確保您的$data成這個樣子的:

$data = array(
    "u_ip" => $this->input->ip_address(), 
); 

$this->insert("data", $data); 

或者,如果從另一個文件來,這樣做:

$this->insert("users", $data[0];) 

記住加載dataabse:

$this->load->database(); 

這將在add_user($data)如去。

class User_model extends CI_Model 
{ 
    public function add_user($data) 
    { 
     $this->load->database(); 
     $this->db->insert('users',$data); 
     //$res = $this->db->insert('users',$data); (true) 
    } 
} 

但是,可以自動擁有這些,如果你去autoload.php,你可以這樣做:

$autoload['libraries'] = array('database'); 

併爲你的模型:

$autoload['model'] = array('logic'); 
+0

$ autoload ['libraries'] = array('database'); – Vitalii

0

$這個 - >輸入 - > is_ajax_request()

這是通過形式發佈?如果是這樣的話應該是$ this-> input-> post('is_ajax_request'); is_ajax_request是您發佈的輸入名稱,

如果其控制器內的另一個函數需要執行$ this-> is_ajax_request();

+0

有發佈使用** jQuery AJAX ** – Vitalii