我有这个当前的SQLite表:
CREATE TABLE Goal (
id INTEGER PRIMARY KEY,
Name CHAR(32) NOT NULL,
Image CHAR(256),
Target INTEGER NOT NULL,
Priority CHAR(32) NOT NULL
);
我正在尝试通过PHP创建一个整数id,如下所示:
$query = 'INSERT OR IGNORE INTO Goal (Name, Image, Target, Priority) VALUES'; // Query to insert goal-related info into Goal table
$query .= "('" . $name . "', '" . $image . "', '" . $target . "', '" . $priority . "');";
$addGoalDB -> makeQuery( $query );
$query = 'SELECT last_insert_rowid()';
$result = $addGoalDB -> makeQuery( $query );
$id = $result -> fetchArray(SQLITE3_ASSOC);
$id = $id['id'];
$query = 'INSERT OR IGNORE INTO Users_Goal (Email, id) VALUES';
$query .= "('" . $_SESSION['username'] . "', '" . $id . "');";
$addGoalDB -> makeQuery( $query );
但是使用
继续获得未定义的索引错误$id = $id['id'];
我假设查询错误但无法找到我的问题所在。此链接:http://alvinalexander.com/android/sqlite-autoincrement-insert-value-primary-key使其看起来很简单但不适用于我的代码。我非常感谢任何帮助。
答案 0 :(得分:1)
您正在尝试阅读名为“id
”的列。但是列以您在SELECT
子句中编写的内容命名,因此实际的列名称类似于last_insert_rowid()
。
为列添加正确的名称:
$query = 'SELECT last_insert_rowid() AS id';