簡體   English   中英

如何在CI 3的插入中使用自動增量字段

[英]How to use auto increment field in insert for CI 3

我嘗試將數據插入CI 3中具有以下字段的表中: 在此處輸入圖片說明

pageid是自動遞增的,我在模型中編寫代碼如下:

 $data = array(
            'title'=>$title,
            'description'=>$des,
            'url'=>'page/view/'.pageid
        );
        $this->db->insert('page',$data);

問題在於,pageid作為字段名是未知的。 我想將pageid連接到url,該怎么辦?

您需要兩個查詢

1)您需要先插入title and description ,然后從數據庫中獲取最后一頁ID

$data = array(
    'title' => $title,
    'description' => $des
);

$this->db->insert('page', $data);
$page_id = $this->db->insert_id();// get last pageid

2)第二次更新url

$data = array(
'url' => 'page/view/'.$page_id
);
$this->db->where('pageid'$page_id);// update with page id
$this->db->update('page', $data);

確定,因此您可以先添加所有數據,然后在插入后僅更新url字段。

$data = array(
    'title' => $title,
    'description' => $des,
     'url'=>'page/view/'
);

$this->db->insert('page', $data);
$page_id = $this->db->insert_id();

2)現在更新網址

$update= array(
'url' => 'page/view/'.$page_id
);
$this->db->where('page_id'$page_id);
$this->db->update('page', $update);

希望這個能對您有所幫助

常用方法

  1. phpMyAdmin的
  2. 選擇您的database ,然后轉到page表。
  3. 單擊頂部的structure
  4. 點擊id字段前面的Change
  5. 然后有AI(自動增量)復選框
  6. 檢查並單擊保存

如果使用代碼(使用此代碼)

public function FunctionName()
{
    $query = $this->db->query("SELECT id FROM pages ORDER BY id DESC LIMIT 1");
    $result = $query->result_array();
    $id = $result['id']; // or some times $result[0]['id']

    $data = array(
            'title'         => $title,
            'description'   => $des,
            'url'           => 'page/view/'.pageid,
            'id'            => $id
        );
    $this->db->insert('page',$data);
}

就是這樣:

    $data = array(
        'title'=>$title,
        'description'=>$des
    );
    $this->db->insert('page',$data);
    $page_id = $this->db->insert_id();

    //To pass page_id to url column
    $this->db->where('page_id', $page_id);
    $data_1 = array('url'=>'page/view/'.$pageid);
    $this->db->update('page', $data_1);

您可以首先從選擇查詢中獲得最高的自動遞增ID,然后使用插入查詢來插入新行。 例如。

$id = $this->db->query("Select max(page_id) AS page_id from pages");
if($id->num_rows() > 0){
  $result = $id->result_array();
  $page_id = $result[0]['page_id'] +1;
}
// if table is empty
else{
  $page_id = 1;
} 
$data = array(
'title' => $title,
'description' => $des,
 'url'=>'page/view/'.$page_id );
$this->db->insert('page',$data);      

在此處輸入圖片說明

請檢查它的圖像以在phpmyadmin中添加自動增量ID。

暫無
暫無

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

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