在sqlite3中获取语法错误?

时间:2014-09-01 08:53:22

标签: ios7 sqlite

我试图在数据库中存储两个值但是我遇到了语法错误 这是我的代码

- (IBAction)LogIn:(id)sender {
sqlite3 *dbConnection;
sqlite3_stmt *statement = Nil;
if (sqlite3_open([[sharedobj getSandboxPath] UTF8String], &dbConnection) == SQLITE_OK) {
NSString *insertQuery = [NSString stringWithFormat:@"INSERT INTO LOGINVALUES ('%@','%@')",self.userNameField.text,self.passwordField.text];

    if (sqlite3_prepare_v2(dbConnection, [insertQuery UTF8String], -1, &statement, NULL) == SQLITE_OK) {
        sqlite3_bind_text(statement, 1, [self.userNameField.text UTF8String], -1, NULL);
        sqlite3_bind_text(statement, 2, [self.passwordField.text UTF8String], -1, NULL);

    }

    if (sqlite3_step(statement) == SQLITE_DONE) {
        NSLog(@"successfully inserted a record in table");
    }
    else{
        NSLog(@"error is %s",sqlite3_errmsg(dbConnection));
    }
}
sqlite3_finalize(statement);
sqlite3_close(dbConnection);

}  但我得到了

error is near ")": syntax error

我该如何解决此错误? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

假设LOGIN是您的表名,您需要LOGINVALUES之间的空格。

截至目前,LOGINVALUES被视为表名,括号列出了要插入的列名。然后SQL输入结束而不强制INSERT查询,例如VALUES (...)部分。

另外,最后添加分号;