如何将数组插入Sqlite数据库

时间:2014-01-30 20:18:19

标签: ios objective-c arrays sqlite nsmutablearray

请告诉我如何将数组插入Sqlite表。我传递2个数组作为参数。这是代码:

- (void)saveData:(NSMutableArray *)firstArray second:(NSMutableArray *)secondArray {

[self openDB];

NSString *createSQL = @"CREATE TABLE IF NOT EXISTS Table1"
“(EID INTEGER PRIMARY KEY, Array1 TEXT, Array2 TEXT);";
char *errorMsg;
if (sqlite3_exec (database, [createSQL UTF8String],
                  NULL, NULL, &errorMsg) != SQLITE_OK)
{
    sqlite3_close(database);
    NSAssert(0, @"Error creating table: %s", errorMsg);
}

    char *update = "INSERT OR REPLACE INTO Table1 (ID, Array1, Array2)"
    "VALUES (?, ?, ?);";
    errorMsg=NULL;
    sqlite3_stmt *stmt;
    if (sqlite3_prepare_v2(database, update, -1, &stmt, nil)
        == SQLITE_OK) {

        Please let me know how to insert the data.

        if (sqlite3_step(stmt) != SQLITE_DONE)
            NSAssert(0, @"Error updating table: %s", errorMsg);
        sqlite3_finalize(stmt);

}

}

3 个答案:

答案 0 :(得分:3)

您正在做的事情存在多个问题,这似乎源于对SQLite的不熟悉。首先,sqlite不将数组理解为原始值,更不用说NSMutableArrays了。其次,您尝试将值作为参数传递,但您没有在任何地方设置参数。我建议this book可以让你更好地理解SQLite,或者通过sqlite.org上的在线教程

答案 1 :(得分:0)

要插入数组,您必须使用一对多关系 所以你需要为ex id和array1和array2创建表contans作为复合主键

答案 2 :(得分:0)

JSON1扩展为管理(JSON)数组提供了基本支持。这个需要 SQLite版本3.9.0(2015-10-14)。有关更多详细信息,请参见:

https://www.sqlite.org/json1.html