iphone - sqlite3_exec != SQLITE_OK

标签 iphone ios ios6

<分区>

请大家帮帮我。 我无法将数据插入到 sqlite。

输出为“新闻添加失败”。

注意: - 数据库已创建。 - 新闻是一个对象 我只是认为问题出在这个函数上。 你能告诉我我的代码有什么问题吗? 谢谢。

- (void)addNews:(NSString *)content_caption content_date:(NSString *)content_date content_desk:(NSString *)content_desk content_id:(NSString *)content_id content_img:(NSString *)content_img content_type:(NSString *)content_type content_web_url:(NSString *)content_web_url{


char *error;
if (sqlite3_open([databasePath UTF8String], &database)==SQLITE_OK) {
    NSString *inserStmt = [NSString stringWithFormat:@"INSERT INTO dBase(CONTENT_CAPTION,CONTENT_DATE, CONTENT_DESK, CONTENT_ID, CONTENT_IMG, CONTENT_TYPE, CONTENT_WEB_URL) values (\'%@\',\'%@\',\'%@\',\'%@\',\'%@\',\'%@\',\'%@\')",content_caption, content_date, content_desk, content_id, content_img, content_type ,content_web_url];

    const char *insert_stmt = [inserStmt UTF8String];

    if (sqlite3_exec(database, insert_stmt, NULL, NULL, &error)==SQLITE_OK) {
        NSLog(@"News added");

        News *news = [[News alloc]init];

        [news setContent_caption:content_caption];
        [news setContent_date:content_date];
        [news setContent_desk:content_desk];
        [news setContent_id:content_id];
        [news setContent_img:content_img];
        [news setContent_type:content_type];
        [news setContent_web_url:content_web_url];

        [arrayOfNews addObject:news];
    }else{
        NSLog(@"News added failed");
    }
    sqlite3_close(database);
}

最佳答案

试试这个

    #define SQLITE_TRANSIENT   ((sqlite3_destructor_type)-1)

    const char *insertSql;
    insertSql = nil;
    insertSql = "INSERT INTO dBase(CONTENT_CAPTION,CONTENT_DATE, CONTENT_DESK, CONTENT_ID, CONTENT_IMG, CONTENT_TYPE, CONTENT_WEB_URL) values (?,?,?,?,?,?,?)";

    if (sqlite3_open([databasePath UTF8String], &database)==SQLITE_OK) {

        sqlite3_bind_text(insert_statement, 1, [content_caption UTF8String], -1, SQLITE_TRANSIENT);
        sqlite3_bind_text(insert_statement, 2, [content_date UTF8String], -1, SQLITE_TRANSIENT);
        sqlite3_bind_text(insert_statement, 3, [content_desk UTF8String], -1, SQLITE_TRANSIENT);
        sqlite3_bind_text(insert_statement, 4, [content_id UTF8String], -1, SQLITE_TRANSIENT);
        sqlite3_bind_text(insert_statement, 5, [content_img UTF8String], -1, SQLITE_TRANSIENT);
        sqlite3_bind_text(insert_statement, 6, [content_type UTF8String], -1, SQLITE_TRANSIENT);
        sqlite3_bind_text(insert_statement, 7, [content_web_url UTF8String], -1, SQLITE_TRANSIENT);

    }

关于iphone - sqlite3_exec != SQLITE_OK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17546496/

上一篇:iphone - 从 NSString 转换为 NSDate 时日期会有所不同

下一篇:iphone - 获取距我当前位置最近的位置

相关文章:

iPhone 和用户定义的运行时属性

objective-c - iPhone项目常数

iphone - 移动 Web 应用程序和 Facebook Connect 的空白屏幕

ios - 通用链接适用于 xcode8 模拟器,但不适用于 ios 10 设备

ios - 核心数据自定义迁移

ios - 在 Google Analytics 中跟踪来自移动设备主屏幕的流量

html - 如何在 UIWebView 中显示本地 html 文件?

iphone - 使用 Target iOS 5.0 从 iOS SDK 6.1 加载 map 应用程序

ios - 如何在核心图中设置绘图委托(delegate)

iphone - iOS 6 中 UI 导航 View 和选项卡栏 View 的颠倒方向不起作用?