【问题标题】:fmdb executeUpdate failsfmdb 执行更新失败
【发布时间】:2012-02-20 13:55:09
【问题描述】:

我做错了什么?这是一个非常简单的语句,但无法弄清楚导致它失败的原因

    FMDatabase *db = [FMDatabase databaseWithPath:appDelegate.databasePath];
    [db open];
        isSuccess = [db executeUpdate:@"INSERT INTO notes (title, comment, fk) values (?, ?, ?);", title, comment, fkID];

exception.name=NSInvalidArgumentException, exception.reason=-[__NSCFString comment]:无法识别的选择器发送到实例 0x68a93f

注意.h

#import <Foundation/Foundation.h>

@interface Note : NSObject

@property (strong, nonatomic) NSString *title;
@property (strong, nonatomic) NSString *comment;
@property (nonatomic) int fkID;

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    看看FMDB usage

    [db executeUpdate:@"INSERT INTO notes VALUES (?,?,?)", title, comment, [NSNumber numberWithInt:fkID]];  
    

    提供给 -executeUpdate: 方法(或任何接受 va_list 作为参数的变体)的所有参数都必须是对象。

    【讨论】:

      【解决方案2】:

      这就是我最终要做的。

          NSString *sql = [NSString stringWithFormat:@"INSERT INTO notes (title, comment, fkid) values ('%@', '%@', %i)", title, comment, fkid];
          isSuccess = [db executeUpdate:sql];
      

      效果很好。

      【讨论】:

      猜你喜欢
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多