【问题标题】:Trouble returning the affected rows on batch insert using SQLSRV使用 SQLSRV 在批量插入时返回受影响的行时遇到问题
【发布时间】:2014-06-25 14:28:09
【问题描述】:

我正在使用 codeignitor 2.1.4 并使用 insert_batch 插入一堆行。我使用 SQLSRV 驱动程序连接到 SQL Server 2008 数据库。查询运行良好,但是当我运行affected_rows() 函数时,我得到了一个奇怪的结果。请注意,我已针对 bug 更改了受影响的行函数,所以这不是问题。

我看到的是返回的号码在 2 位数字后被截断。所以如果插入的行是 343,我会得到 43。如果受影响的行是 35312,我会得到 12 返回。

我想知道是否有其他人见过这种行为?我已经检查了返回变量类型,它是 INT 所以它不是。我不知道错误或更改发生在哪里。它几乎就像将返回值作为模数 100 并返回。

【问题讨论】:

    标签: php codeigniter-2 sqlsrv


    【解决方案1】:

    所以环顾四周后,我发现 Codeigniter 中的 insert_batch 和 update_batch 函数存在疏忽。

    因为插入和更新一次更改 100 行,所以 affected_rows 函数只看到最后 ($rows%100) 行,因为那将是最后一次插入/更新完成。

    这个链接提供了我找到的解决方案:

    Affected rows solution

    那里的帖子中没有说,但是您需要更改 system/database/DB_active_rec.php 文件中的 insert_batch 和 update_batch 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      相关资源
      最近更新 更多