我有主表ID
的db表图像和自动增量。我正在使用ajax > controller > model
添加新图片。
我的创建模型有方法create
public function create($data = array())
{
$this->db->insert($this->_table, $data);
return $this->db->insert_id();
}
public function getLastInserted() {
return $this->db->insert_id();
}
在控制器中我创建测试元数据以检查插入的最后一个id:
public function lastID()
{
var_dump($this->photo->getLastInserted());
}
// int(0)
但是记录是在数据库中插入的。可能有什么问题?
答案 0 :(得分:2)
来自官方文档: mysqli :: $ insert_id - 返回最后查询中使用的自动生成的ID
确保您没有进行任何其他查询 AFTER 您的create()
方法。
我建议将最后插入的ID放入类变量中,以避免将来出现类似问题:
private $lastInsertId = null;
public function create($data = array())
{
$this->db->insert($this->_table, $data);
$this->lastInsertId = $this->db->insert_id();
return $this->lastInsertId;
}
public function getLastInserted() {
return $this->lastInsertId;
}
答案 1 :(得分:0)
dbconnection->lastInsertId()
仅在您的数据库连接变量(如
<xs:element name="Pickers">
<xs:complexType>
<xs:sequence>
<xs:element ref="Picker" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="unique-prefix">
<xs:selector xpath="st:Picker"/>
<xs:field xpath="@prefix"/>
</xs:unique>
</xs:element>
答案 2 :(得分:0)
您的create函数返回最后一个插入ID。要查看上一个插入ID,只需在控制器函数中使用此代码
public function lastID()
{
var_dump($this->photo->create('table_name',$data));
}
照片模型功能
function create($tableName, $data)
{
$this->db->insert($tableName, $post);
return $this->db->insert_id();
}