如何在SQLite中获取最后一个插入ID?

时间:2012-01-17 10:24:22

标签: php sql sqlite function lastinsertid

SQLite中是否有可用的内置函数来获取最后插入的行id。 例如: - 在mysql中我们有LAST_INSERT_ID()这种函数。对于sqllite,任何可用于执行相同过程的函数。

请帮帮我。

由于

5 个答案:

答案 0 :(得分:20)

SQLite的

使用SQLite last_insert_rowid() function

可以使用此功能
  

last_insert_rowid()函数返回最后一行的ROWID   从调用该函数的数据库连接插入。该   last_insert_rowid()SQL函数是一个包装器   sqlite3_last_insert_rowid()C / C ++接口函数。

PHP

此函数的PHP版本/绑定为sqlite_last_insert_rowid()

  

返回最近插入的行的rowid   数据库dbhandle,如果它是作为自动增量字段创建的。

答案 1 :(得分:15)

将SQLite版本3与PDO SQLite一起使用时,可以是这样的:

$insert = "INSERT INTO `module` (`mid`,`description`) VALUES (
            NULL,
            :text
            );
        ";
$stmt = $conn->prepare($insert);
$stmt->execute(array(':text'=> $text));

echo $conn->lastInsertId()

答案 2 :(得分:4)

它有last_insert_rowid()

  

last_insert_rowid()函数返回最后一行的ROWID   从调用函数的数据库连接插入

答案 3 :(得分:2)

答案 4 :(得分:0)

这是一个适合我的简短C#方法。 Int32对我来说足够大了。

public static Int32 GetNextID( SqliteConnection AConnection )
{
  Int32 result = -1;

  using ( SqliteCommand cmd = AConnection.CreateCommand() )
  {
    cmd.CommandText = "SELECT last_insert_rowid();";
    using ( SqliteDataReader r = cmd.ExecuteReader() )
    {
      if ( r.Read() )
        result = (Int32) r.GetInt64( 0 );
    }
  }

  return result;
}