插入并选择最后一个没有返回结果的ID


PHP SQLite3 Insert and select last ID not returning result

我试图插入新数据到SQLite数据库并选择最后一个ID,当我在SQLite浏览器中执行语句时,我看到该语句是正确的,我得到了结果。但是当我试图在PHP脚本中获得结果时,我得到"null"。

<?php
class SQLiteDb extends SQLite3{
    function __construct(){
        $this->open('chat.db');
        $this->exec('CREATE TABLE IF NOT EXISTS "users" (
                        `id`    INTEGER PRIMARY KEY AUTOINCREMENT,
                        `username`  VARCHAR(30) NOT NULL,
                        `status`    VARCHAR(15) NOT NULL,
                        `date_created`  VARCHAR(40) NOT NULL
                    )');
    }
}

$conn = new SQLiteDb();
$sql = "INSERT INTO users (username, status, date_created) VALUES ('test','active','23/09/2015 14:44'); SELECT last_insert_rowid() AS last_id;"

$lastId = $conn->querySingle($sql); 
var_dump($lastId);//returns null

$lastId = $conn->query($sql); 
var_dump($lastId); //returns object(SQLite3Result)[3]
var_dump($lastId->fetchArray(SQLITE3_ASSOC)); //returns false

要执行多个SQL语句,您必须多次调用querySingle()query()

无论如何,获得最后插入的rowid的最简单方法是调用$conn->lastInsertRowid()