您的位置:首页 > 编程语言 > PHP开发

php thinkphp+pgsql M('table')->add()不能正常的返回新增记录的主键id值。

2016-03-30 18:12 465 查看
thinkphp框架对pgsql的支持很差 M('table')->add()不能正常的返回新增记录的主键id值。所以这里需要对框架做一些修改(thinkphp 3.2.3).1.修改Model.class.php添加如下方法:/*** 返回最后插入的ID* @access public* @return string*/public function getLastInsID($sequenceName) {return $this->db->last_insert_id($sequenceName);}
2.修改Pgsql.class.php
添加如下方法:
/**
* 用于获取最后插入的ID
* @access public
* @return integer
*/
public function last_insert_id($sequenceName) {
return $this->_linkID->lastInsertId($sequenceName);
}
3.最后在使用的时候需要手动调用这个方法, 而不是M()->add()返回值
如下:
model('model')->add($data);$user_id = model('model')->getLastInsID('tableName_id_seq');
'tableName_id_seq' 中的id为自增的 当然也可以换成任何需要返回的字段.
以上只是简单实现.
参考:http://www.thinkphp.cn/bug/2794.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  thinkphp 框架