【问题标题】:Getting last inserted index mysql获取最后插入的索引mysql
【发布时间】:2012-02-16 21:10:36
【问题描述】:

我正在使用 ADODB 连接到我的数据库。 提交查询后,我想获取最后插入行的 ID(来自刚刚插入的查询)。

ADODB 有一个 Insert_ID() 函数应该检索它,但它不是...
db->Insert_ID()
不工作,
db->Insert_ID($table, $key)

它们都只返回空值。 我仔细检查了我的表,插入语句确实在工作,正在放入一个新行,关键是 auto_increment。我使用的 Insert_ID 错误还是有更好的方法来检索插入的最后一行的键?

谢谢

编辑:添加代码

    $result = \PSU::db->Execute( $updateSQL, $values_array );
    $id = \PSU::db->Insert_ID();
    // $id = \PSU::db->Insert_ID( $table, $key );

\PSU::db 是我们的 ADODB 实现类,负责连接、断开等操作。

【问题讨论】:

  • 向我们展示您正在使用的确切代码。
  • 试试这个 $db->_connectionID->insert_id;插入后
  • Insert_ID() 没有参数,仅当数据库支持自增 ID 时才返回最后一个插入 ID。如果不支持,则返回 FALSE。
  • 正如我在帖子中所说,该表确实支持自动增量
  • 关于您的编辑:请展示您如何将对象分配给类常量。我想知道你是如何神奇地做到这一点的。

标签: php mysql adodb adodbapi


【解决方案1】:

您是否有可能在查询和 insert_id() 之间断开并重新连接到 mysql?

【讨论】:

    【解决方案2】:

    试试这个:

    $result = \PSU::db->Execute( $updateSQL, $values_array );
    
    return \PSU::db->_connectionID->insert_id ;
    

    _connectionID 必须按原样固定。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2011-06-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多