【发布时间】:2013-01-24 15:11:04
【问题描述】:
这就是我创建句柄的方式
$this->_handle = new SQLite3($this->_dbname);
这就是我进行数据库查询的方式(缩短):
$stmt = $this->_handle->prepare($sql);
// execute query
$result = $stmt->execute();
// get all results
while($row = $result->fetchArray(SQLITE3_ASSOC)){
$res[] = $row;
}
现在我想获取最后插入的 ID。我是这样尝试的:
public function last_insert_rowid()
{
$result = sqlite_last_insert_rowid($this->_handle);
var_dump($result);
echo '<pre>';
print_r($result);
echo '</pre>';
return $result;
}
我收到此错误:
警告:sqlite_last_insert_rowid() 期望参数 1 为 资源,在第 444 行 ... 中给出的对象 NULL
编辑:这行不通,因为我必须用sqlite_open() 打开它。
我也用这个代码试过:
function last_insert_rowid(){
global $db;
$sql = "SELECT last_insert_rowid();";
$result = $db->ExecuteQuery($sql);
var_dump($result);
return $result;
//return ($db->last_insert_rowid());
}
我收到以下错误消息:
NULL 警告:SQLite3Stmt::execute() [sqlite3stmt.execute]: 无法 执行语句:约束在..中失败。
错误指向这一行$stmt->execute();
如何获取我最后插入的 ID?
【问题讨论】:
标签: php sqlite lastinsertid last-insert-id