【问题标题】:Last Insert ID on codeigniter with SQL Server returns false使用 SQL Server 在 codeigniter 上的最后插入 ID 返回 false
【发布时间】:2016-04-16 23:00:54
【问题描述】:

晚上好,

我在使用活动记录代码点火器的最后一个插入 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 的活动记录。

任何帮助都会很棒,在此先感谢!

【问题讨论】:

  • 你在哪里定义$this->table???
  • 调试 $this->db->insert($this->table, $data);通过写 $this->db->last_query();死;插入后。然后看看有什么问题。可能是你的表名不正确。
  • @Saty 抱歉回答晚了,我正在定义构造函数。私人 $table;
  • @UmairHamid 好的,我会这样做的。

标签: php sql-server codeigniter


【解决方案1】:

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

【讨论】:

  • 它返回“字符串或二进制数据将被截断”。
  • 生成的查询是什么?使用$this->db->last_query 并在此处发布查询
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多