请告诉我如何将数组插入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);
}
}
答案 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)。有关更多详细信息,请参见: