gpt4 book ai didi

iphone - objective-c 中的SQLite错误

转载 作者:行者123 更新时间:2023-12-03 18:31:00 25 4
gpt4 key购买 nike

我正在尝试删除iPhone应用程序上我的sqlite数据库中的某些条目,但出现了一个奇怪的错误。

这是我的代码:

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_name和date是我的专栏...为什么说“学习”不是专栏?

最佳答案

您需要将Studying用单引号引起来。还有你的约会

这个:

delete from Favorites_Table 
where playlist_name = Studying and date = 1/1/2012


应该是这样的:

delete from Favorites_Table 
where playlist_name = 'Studying' and date = '2012-01-01'


原因是,如果不将其放在单引号中,则解析器将认为它是列名。在第一个查询中,您尝试从 Favorites_Table删除,其中 playlist_name列等于 Studying列。从此以后,您的错误“没有这样的专栏”。

一旦您将报价固定在学习周围,您的约会也将引发错误。日期使用ISO格式(yyyy-mm-dd)进行比较。根据经验,请勿使用本地化的mm / dd / yyyy或dd / mm / yyyy格式。

关于iphone - objective-c 中的SQLite错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8825585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com