gpt4 book ai didi

ios - SQLite 中 FROM 子句中的绑定(bind)参数

转载 作者:行者123 更新时间:2023-11-29 02:58:39 24 4
gpt4 key购买 nike

是否可以将查询的 FROM 子句中的参数绑定(bind)到 SQLite?怎么办?

如果不是,为什么?还有其他选择吗?

这是我想在我的 iOS 应用程序中执行的操作:

- (BOOL)existsColumn:(NSString *)column inTable:(NSString *)table ofDatabase:(FMDatabase *)database {
NSString *query = @"SELECT ? FROM ? LIMIT 0";
NSArray *queryParameters = @[column, table];
return (BOOL)[database executeQuery:query withArgumentsInArray:queryParameters];
}

这是我收到的错误信息:

near "?": syntax error

我知道还有其他方法可以check if a column exists .我特别好奇为什么我不能在 FROM 子句中绑定(bind)参数(只能在上面的 SELECT 子句中绑定(bind)参数,所以它一定是 FROM 子句的问题)。

最佳答案

?应该只用于将实际值绑定(bind)到查询中,例如 VALUESINSERTWHERE 中的值条款。

要动态构建列名和表名,您应该在将查询字符串发送到 FMDB 之前简单地使用字符串格式来构建查询字符串。

- (BOOL)existsColumn:(NSString *)column inTable:(NSString *)table ofDatabase:(FMDatabase *)database {
NSString *query = [NSString stringWithFormat:@"SELECT %@ FROM %@ LIMIT 0", column, table];
return (BOOL)[database executeQuery:query];
}

请注意,您不应使用字符串格式来代替 ?以及实际值的正确值绑定(bind)(在这种情况下您没有)。

关于ios - SQLite 中 FROM 子句中的绑定(bind)参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553581/

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