插入时出现以下错误:"Error preparing INSERT INTO licenselog(timelog) VALUES('2015-11-16 14:21:07')"



我想将当前时间和日期插入数据库,但语句尚未准备好。平台:iOS、sqlite3和objective C.

以下是数据库架构

CREATE TABLE licenselog(lid integer not null primary key,timelog varchar(30) not null);

以下是我的数据库函数:

-(int) addLog:(NSString *)logDate
{
[self openDB];
NSString *insertString1 = [NSString stringWithFormat:@"INSERT INTO licenselog(timelog) VALUES('%@')",logDate];
NSLog(@"Insert Query=%@",insertString1);
const char* query = [insertString1 UTF8String];
sqlite3_stmt *query_stmt = NULL;
if (sqlite3_prepare_v2(database, query, -1, &query_stmt, NULL) != SQLITE_OK) {
    NSLog(@"Error preparing %@", insertString1);
    return 0;
}
if(sqlite3_step(query_stmt)!= SQLITE_DONE)
{NSLog(@"Error running insert %s",query);
    return 0;
}
[self closeDB];
return 1;
}

我还在同一个数据库类中使用了以下函数(用于不同的表),但它运行良好。

-(int) addLicense:(NSString*)licenseName
            expiryDate:(NSString*)expiryDate
{
[self openDB];
NSString *insertString = [NSString stringWithFormat:@"INSERT INTO license_details(license_name,expiray_date) VALUES('%@','%@')",licenseName,expiryDate];
NSLog(@"Insert Query=%@",insertString);
const char* query = [insertString UTF8String];
sqlite3_stmt *query_stmt = NULL;
if (sqlite3_prepare_v2(database, query, -1, &query_stmt, NULL) != SQLITE_OK) {
       NSLog(@"Error preparing %@", insertString);
        return 0;
}
if(sqlite3_step(query_stmt)!= SQLITE_DONE)
    {
      NSLog(@"Error running insert %s",query);
      return 0;
    }
 [self closeDB];
 return 1;
}

您创建了一个表licenselog,但试图插入到表license_log中。

最新更新