0

我正在尝试使用 SQLite 的编译语句将行插入表中:

rc = sqlite3_prepare(db, "INSERT INTO TABLE test VALUES (?,?,?,?)", -1, &stmt, 0);
if( rc!=SQLITE_OK )
    printf("%s", sqlite3_errmsg(db));

sqlite3_prepare返回 1,并sqlite3_errmsg返回:

“在“表”附近:语法错误”

4

2 回答 2

3

您不应该在查询中输入“TABLE”:

rc = sqlite3_prepare(db, "INSERT INTO  test VALUES (?,?,?,?)", -1, &stmt, 0);
if( rc!=SQLITE_OK )
    printf("%s", sqlite3_errmsg(db));

命名您要插入的字段也是一个好习惯。这样,如果您向表中添加字段,您的查询就不会被破坏......

于 2013-04-15T15:17:26.043 回答
2

TABLE是保留关键字。为避免语法错误,必须使用方括号对其进行转义,

INSERT INTO test VALUES (?,?,?,?)
于 2013-04-15T15:16:49.777 回答