FMDB执行executeQuery时使用占位符注意点

+ (NSArray *)getLocationByParentid:(int)parentid {
    if (!_queue)
        return nil;
    
    // 1.定义数组
    __block NSMutableArray *dataArray = nil;
    
    // 2.使用数据库
    [_queue inDatabase:^(FMDatabase *db) {
        dataArray = [NSMutableArray array];
        FMResultSet *rs = nil;
        NSString *sql = @"select * from ";
        NSString *sqlAll = [sql stringByAppendingFormat:@"%@%@%@%@",TABLE_NAME, @" where ", PARENTID,@"=?;"];
        NSLog(@"%@", sqlAll);
        rs = [db executeQuery:sqlAll, parentid]; <span style="color:#ff6666;">// 正确:rs = [db executeQuery:sqlAll, [NSNumber numberWithInt:parentid]];</span>
        while (rs.next) {
            LocationModel *data = [[LocationModel alloc] init];
            data.id =  [rs intForColumn:ID] ;
            data.parentid = [rs intForColumn:PARENTID];
            data.cname = [rs stringForColumn:CNAME];
            data.flag = [rs boolForColumn:FLAG];
            data.hot = [rs boolForColumn:HOT];
            [dataArray addObject:data];
        }
    }];
    
    // 3.返回数据
    return dataArray;
}
执行executeQuery时使用了占位符,直接使用基础类型int时不能成功,需要使用NSNumber类型才可以。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值