当我在 SQLite 数据库中插入数据时,我的应用程序崩溃了。
我在 SQLite 数据库中插入数据的代码是
for (int i=0; i<[arrNewFriendsId count]; i++) {
NSString *stQuery=[NSString stringWithFormat:@"INSERT INTO NewFriendsTable (friend_id,friend_fullname) VALUES ('%@','%@')",[arrNewFriendsId objectAtIndex:i],[arrNewFriendsFullName objectAtIndex:i]];
NSLog(@"Query registered NewFriendsTable : %@",stQuery);
if (sqlite3_open([appdelegate.databasePath UTF8String], &database) == SQLITE_OK) {
const char *sql =[stQuery cStringUsingEncoding:NSASCIIStringEncoding];
sqlite3_prepare_v2(database,sql, -1, &selectstmt, NULL);
if(sqlite3_step(selectstmt)==SQLITE_DONE)
{
sqlite3_bind_text(selectstmt, 1, [[arrNewFriendsId objectAtIndex:i] UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(selectstmt, 3, [[arrNewFriendsFullName objectAtIndex:i] UTF8String], -1, SQLITE_TRANSIENT);
NSLog(@"insert successfully NewFriendsTable ");
}
else
{
NSLog(@"insert not successfully NewFriendsTable ");
}
sqlite3_finalize(selectstmt);
}
sqlite3_close(database);
}}
在上面的代码中,应用程序在这一行崩溃了
sqlite3_prepare_v2(database,sql, -1, &selectstmt, NULL);
插入的数据来自 Facebook,插入查询是
INSERT INTO NewFriendsTable (friend_id,friend_fullname) VALUES ('100000564063540','Rãhüł Pâtęł')
我不明白这个问题。
我认为这与Rãhüł Pâtęł
. 因为它不是常规字符。
但也不知道这是确切的问题。
任何建议、教程、代码、链接都会有很大帮助。