我想将当前时间和日期插入数据库,但语句尚未准备好。平台: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
中。