sqlite3_prepare失败并显示“near”TABLE“:语法错误”

时间:2013-04-15 15:16:01

标签: c++ sql sqlite

我正在尝试使用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“:语法错误”

2 个答案:

答案 0 :(得分:3)

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

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

为您插入的字段命名也是一种很好的做法。因此,如果您向表中添加字段,您的查询就不会被破坏......

答案 1 :(得分:2)

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

对其进行转义
INSERT INTO test VALUES (?,?,?,?)