SQLite通过PHP自动增量字段

时间:2017-04-13 14:19:32

标签: php database sqlite

我有这个当前的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使其看起来很简单但不适用于我的代码。我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您正在尝试阅读名为“id”的列。但是列以您在SELECT子句中编写的内容命名,因此实际的列名称类似于last_insert_rowid()

为列添加正确的名称:

$query = 'SELECT last_insert_rowid() AS id';