使用SQL Server的代码点火器的最后插入ID返回false


Last Insert ID on codeigniter with SQL Server returns false

晚安,

我在使用活动记录代码点火器的最后一个insert id函数时遇到了问题,它在mysql中运行良好。但当我在SQL Server上尝试时,结果总是返回false。请看一下我的代码:

function transactions_start($data) {
    $this->db->insert($this->table, $data);
    $id = $this->db->insert_id();
    $q = $this->db->affected_rows();
    if ($q > 0) {
        return $id;
    } else {
        return FALSE;
    }
}

这是$this->db->last_query()的结果

select @@IDENTITY as id

var_dump()结果总是返回bool(false)

我正在使用MySQL和SQL Server开发这个应用程序,所以我需要继续使用codeigniter的活动记录。

任何帮助都将是伟大的,提前感谢!

insert_id()函数返回最后插入行的id,因此您只需检查它是否大于0。像一样使用它

function transactions_start($data) {
    $this->db->insert($this->table, $data);
    $id = $this->db->insert_id();
    if ($id > 0) {
        return $id;
    } else {
        return FALSE;
    }
}

参考:https://ellislab.com/codeigniter/user-guide/database/helpers.html