繁体   English   中英

PHP SQLite3插入并选择最后一个未返回结果的ID

[英]PHP SQLite3 Insert and select last ID not returning result

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

<?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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM