[英]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.