在cakephp中使用$ this->查询返回插入的id

时间:2009-11-05 10:17:00

标签: cakephp

当我使用cakephp以这种方式插入记录时,我如何获得插入的id $ this-> query(“insert into [tablename]([colname])values([colvalue]);

4 个答案:

答案 0 :(得分:3)

假设您使用的是MySQL,则可以在执行插入后执行以下查询:

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

但正如kouak所提到的,插入数据的常用方法是使用save()方法。如果您使用此方法,则插入记录的ID将自动在相应模型的$ id属性中可用。

答案 1 :(得分:3)

如果你使用save()方法,你可以得到这样的id:

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

答案 2 :(得分:2)

Cake的模型类有一个函数可以获取最后插入的id:

$this->Model->getLastInsertID()

{project-folder} /cake/libs/model/model.php中的第2584行

答案 3 :(得分: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();