2009-11-05 22 views
6

當我使用cakephp以這種方式插入記錄時,我如何獲得插入的標識 $ this-> query(「insert into [tablename]([colname])values values ([COLVALUE]);

+3

爲什麼不使用cakephp內置的save()方法? – kouak 2009-11-05 11:52:35

回答

3

假設你正在使用MySQL你沒有插入之後,你可以執行以下查詢:

$array_with_id = $this->query('select last_insert_id() as id;');

但正如通過kouak所提到的,插入數據的通常的方法是使用save()方法。如果使用此方法,則插入的記錄的id將自動在$ id屬性中提供o f各自的模型。

3

如果您使用的save()方法就可以得到像這樣的ID:

$this->Model->save($data); 
$id = $this->Model->id; 
2

Cake的模型類有獲得最後插入的ID的功能:

$this->Model->getLastInsertID() 

線2584在{項目文件夾} /cake/libs/model/model.php

0

請使用此方法在cakephp2獲得最後插入的id

$data['yourModelName']['yourTableField'] = POstdata 
$data['yourModelName']['yourTableField'] = time(); 
$data['yourModelName']['yourTableField'] = 1; 
$data['yourModelName']['yourTableField'] = time(); 

$this->yourModelName->create(); 
$this->yourModelName->save($data,false); 
$sessionInserted_id = $this->yourModelName->getInsertID();