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()返回值如下:参考:http://www.thinkphp.cn/bug/2794.htmlmodel('model')->add($data); $user_id = model('model')->getLastInsID('tableName_id_seq');
'tableName_id_seq' 中的id为自增的 当然也可以换成任何需要返回的字段.以上只是简单实现.
383



被折叠的 条评论
为什么被折叠?



