当前位置:  开发笔记 > 编程语言 > 正文

如何使用Zend_Db获取Sqlite数据库的最后一个插入ID

如何解决《如何使用Zend_Db获取Sqlite数据库的最后一个插入ID》经验,为你挑选了1个好方法。

我正在尝试在PHP应用程序中获取Sqlite DB的最后一个插入的行ID.我正在使用Zend Framework的PDO Sqlite适配器进行数据库处理.lastInsertId()方法应该给我结果,但它不会.在php.net的PDO文档中,我读到lastInsertId()在所有数据库上的工作方式可能不同.但它根本不适用于sqlite吗?我尝试通过这个覆盖适配器的lastInsertId()方法:

// Zend_Db_Adapter_Pdo_Sqlite
public function lastInsertId() {
    $result = $this->_connection->query('SELECT last_insert_rowid()')->fetch();
    return $result[0];
}

但它也不起作用.我每次打电话都会返回0.是否有任何特殊的清洁方式来找到最后插入的ID?



1> TML..:

给定一个带有表的SQLite3数据库b,如下所示:

BEGIN TRANSACTION;
CREATE TABLE b(a integer primary key autoincrement, b varchar(1));
COMMIT;

这段代码给了我一个lastInsertId:

public function lastInsertId() {
    $result = $this->_connection->query('SELECT last_insert_rowid() as last_insert_rowid')->fetch();
    return $result['last_insert_rowid'];
}

也就是说 - 如果您的表被正确定义,您唯一的问题可能是您尝试获取键$ result [0] - 同样,每当您使用计算列时,我建议使用"AS"对列进行别名关键字,如上所述.如果您不想对列进行别名,则在SQLite3中该列应命名为"last_insert_rowid()".

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有