Iphone 目标C中的Sqlite错误
我正试图在我的iPhone应用程序上删除sqlite数据库中的一些条目,但遇到了一个奇怪的错误 这是我的密码:Iphone 目标C中的Sqlite错误,iphone,objective-c,sqlite,Iphone,Objective C,Sqlite,我正试图在我的iPhone应用程序上删除sqlite数据库中的一些条目,但遇到了一个奇怪的错误 这是我的密码: if(sqlite3_open([databasePath UTF8String], &yerocDB)==SQLITE_OK) { sqlite3_stmt *compiledstatement; NSString *deleteSql=[NSString stringWithFormat: @"delete from Favorites_Table
if(sqlite3_open([databasePath UTF8String], &yerocDB)==SQLITE_OK)
{
sqlite3_stmt *compiledstatement;
NSString *deleteSql=[NSString stringWithFormat: @"delete from Favorites_Table where playlist_name = Studying and date = 1/1/2012"];
const char *sqlstmt = [deleteSql UTF8String];
if(sqlite3_prepare_v2(yerocDB, sqlstmt, -1, &compiledstatement, NULL)==SQLITE_OK)
{
int result = sqlite3_step(compiledstatement);
if(SQLITE_DONE != result)
NSAssert1(0,@"Error while creating delete statement => %s",sqlite3_errmsg(yerocDB) );
}else{
NSLog(@"didn't delete error: %s", sqlite3_errmsg(yerocDB));
}
sqlite3_finalize(compiledstatement);
}
但是我得到了一个错误:
didn't delete error: no such column: Studying
playlist\u name和date是我的栏目……为什么说“studing”不是栏目?你需要将
studing
用单引号括起来。还有你的约会
这:
应该是这样的:
delete from Favorites_Table
where playlist_name = 'Studying' and date = '2012-01-01'
原因是如果不将它放在单引号中,解析器会认为它是一个列名。在第一次查询中,您试图从收藏夹\u表
中删除,其中播放列表\u名称
列等于学习
列。从此你的错误,“没有这样的专栏。”
一旦你修正了关于学习的引语,你的约会对象也会犯错误。日期使用ISO格式(yyyy-mm-dd)进行比较。根据经验,不要使用本地化的mm/dd/yyyy或dd/mm/yyyy格式。您需要用单引号括起
。还有你的约会
这:
应该是这样的:
delete from Favorites_Table
where playlist_name = 'Studying' and date = '2012-01-01'
原因是如果不将它放在单引号中,解析器会认为它是一个列名。在第一次查询中,您试图从收藏夹\u表
中删除,其中播放列表\u名称
列等于学习
列。从此你的错误,“没有这样的专栏。”
一旦你修正了关于学习的引语,你的约会对象也会犯错误。日期使用ISO格式(yyyy-mm-dd)进行比较。根据经验,不要使用本地化的mm/dd/yyyy或dd/mm/yyyy格式