簡體   English   中英

無法插入數據庫codeigniter,但可以更新

[英]Can't insert into database codeigniter but can update

我在使用CodeIgniter時遇到麻煩。

我正在關注有關如何使用CI構建CMS的網絡教程。 我將相同的功能save設置為更新並在數據庫中保存新項目。

    public function save($data, $id = NULL){

    // Set timestamps
    if ($this->_timestamps == TRUE) {
        $now = date('Y-m-d H:i:s');
        $id || $data['created'] = $now;
        $data['modified'] = $now;
    }

    // Insert
    if ($id === NULL) {

        $id = $this->db->insert_id();
        $this->db->set($data);
        $this->db->insert($this->_table_name);
    }
    // Update
    else {
        $filter = $this->_primary_filter;
        $id = $filter($id);
        $this->db->set($data);
        $this->db->where($this->_primary_key, $id);
        $this->db->update($this->_table_name);
    }

    return $id;
}

事實是,更新正常運行,但插入無效。

這是他正在調用的控制器函數:

    public function edit ($id = NULL)
{
    // Fetch a page or set a new one
    if ($id) {
        $this->data['page'] = $this->page_m->get($id);
        count($this->data['page']) || $this->data['errors'][] = 'page could not be found';
    }
    else {
        $this->data['page'] = $this->page_m->get_new();
    }

    // Pages for dropdown
    $this->data['pages_no_parents'] = $this->page_m->get_no_parents();

    // Set up the form
    $rules = $this->page_m->rules;
    $this->form_validation->set_rules($rules);

    // Process the form
    if ($this->form_validation->run() == TRUE) {
        $data = $this->page_m->array_from_post(array('title','slug','body','parent_id'));
        $this->page_m->save($data, $id);
        redirect('admin/page');
    }

    // Load the view
    $this->data['subview'] = 'pages/admin/page/edit';
    $this->load->view('pages/admin/_layout_main', $this->data);
}

我想我給了你足夠的背景

希望這對你有用:

if (!$id) {
    //$this->db->set($data);
    $this->db->insert($this->_table_name, $data);
    $id = $this->db->insert_id();
}

編輯:

else {
    $this->data['page'] = $this->page_m->get_new();
    $id = NULL;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM