gpt4 book ai didi

ios - 无法将数据插入到iOS中的sqlite3中

转载 作者:行者123 更新时间:2023-11-29 04:33:43 27 4
gpt4 key购买 nike

我正在尝试将文本数据插入 iOS 中的 sqlite3 数据库中。

我编写了以下代码将数据保存到sqlite3数据库中。

NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MgDB.sqlite"];

BOOL success = [fileMgr fileExistsAtPath:dbPath];

if(!success)
{
NSLog(@"File Not Found");
}

if((!sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK))
{
NSLog(@"Error in MyInfo");
}

const char *sql = "Insert into MyDB (name,address,email) values('%@','%@','%@')";

sqlite3_bind_text(sqlStmt, 0, [Name UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(sqlStmt, 1, [Address UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(sqlStmt, 2, [Email UTF8String], -1, SQLITE_TRANSIENT);

if(sqlite3_prepare(database, sql, -1, &sqlStmt, NULL))
{
NSLog(@"Error in Loading database");
}

if (sqlite3_exec(database, sql, NULL, NULL, NULL) == SQLITE_OK)
{
return sqlite3_last_insert_rowid(database);
}


if(sqlite3_step(sqlStmt) == SQLITE_ROW)
{
NSLog(@"ERROR");
}
}

@catch (NSException *exception)
{
NSLog(@"%@",exception);
}

@finally
{
sqlite3_finalize(sqlStmt);
sqlite3_close(database);
}

根据我上面的代码,我返回最后一个插入的ROWID来检查插入与否。

在View中保存文本数据后,ROWID增加了。

但是,当我使用 FireFox sqlite3 工具检查数据库时,没有插入任何数据。

所以我停止运行并重新运行我的应用程序并再次添加数据。

最后插入的ROWID与旧计数相同,不增加1。

我想知道为什么它不将任何数据保存到sqlite数据库中。

我的代码有问题吗?

请帮助我。

提前致谢。

最佳答案

NSString *dbPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MgDB.sqlite"];

您无法写入应用程序包中包含的文件。相反,在 Documents 目录中创建(或复制)数据库。

参见QA1662 .

关于ios - 无法将数据插入到iOS中的sqlite3中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11344959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com