使用SQL Server的codeigniter上的最后一个插入ID返回false

时间:2016-01-12 10:57:56

标签: php sql-server codeigniter

晚安,

我遇到了带有活动记录codeigniter的最后一个插入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的活动记录。

任何帮助都会很棒,提前谢谢!

1 个答案:

答案 0 :(得分:0)

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