Я пытаюсь вставить новые данные в SQLite db и выбрать последний идентификатор, когда я выполняю инструкцию в браузере SQLite. Я вижу, что утверждение верное, и я получаю результат. Но когда я пытаюсь получить результат в моем PHP-скрипте, я получаю «null».PHP SQLite3 Вставить и выбрать последний идентификатор, не возвращающий результат
<?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
Вы проверили журналы ошибок? –
может быть полезно? [SQLiteDatabase :: lastInsertRowid - возвращает значение строки из последней вставленной строки] (http://php.net/manual/en/function.sqlite-last-insert-rowid.php) –
- SQLite не возвратил ошибок - Райан, я видел эту ссылку раньше, но, к сожалению, я не понял, как правильно использовать этот метод. – Yuval