sqlite3_prepare失败,"near "表": syntax error"

sqlite3_prepare fails with "near "TABLE": syntax error"

本文关键字:syntax error near sqlite3 prepare 失败      更新时间:2023-10-16

我试图使用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返回:

"near "TABLE:语法错误"

你不应该在你的查询中添加"TABLE":

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

为要插入的字段命名也是一个很好的做法。因此,如果您添加字段到您的表,您的查询将不会被打破…

TABLE为保留关键字。为了避免语法错误,必须使用方括号

进行转义。
INSERT INTO test VALUES (?,?,?,?)
  • SQLite保留关键字的四种转义方式