我需要使用Objective C和iPhone开发工具包将新条目写入SQLite数据库的帮助。
打开/关闭/读取数据库的操作运行正常,但是我不明白为什么这段代码不能工作。
-(void) testWriteToDatabase{
NSLog(@"instructions sent 3");
sqlite3 *database;
sqlite3_stmt *compiledStatement;
const char *insertSql="INSERT INTO data (name,pass,email) VALUES(?,?,?)";
NSString *userRegistered=userRegister.text;
NSLog(@"user %@",userRegistered);
NSString *passRegistered=passRegister.text;
NSLog(@"pass %@",passRegistered);
NSString *emailRegistered=emailRegister.text;
NSLog(@"email %@",emailRegistered);
sqlite3_stmt *insertStmt = nil;
if(sqlite3_open([databasePath UTF8String],&database) == SQLITE_OK) {
if(sqlite3_prepare_v2(database, insertSql, -1, &insertStmt, NULL) == SQLITE_OK){
NSLog(@"instructions sent 4");
sqlite3_bind_text(insertStmt, 1, [userRegistered UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(insertStmt, 2, [passRegistered UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(insertStmt, 3, [emailRegistered UTF8String], -1, SQLITE_TRANSIENT);
NSLog(@"instructions sent 5");
while (sqlite3_step(compiledStatement) == SQLITE_ROW) {
}
}
sqlite3_reset(insertStmt);
}
sqlite3_close(database);
}
老实说,我以前从来没有真正使用过SQLite,但主要的问题是它没有像我希望的那样向数据库“数据”中添加条目。非常感谢您的帮助,干杯。
发布于 2011-06-14 20:44:50
不应该
while (sqlite3_step(compiledStatement) == SQLITE_ROW) {
}
be
while (sqlite3_step(insertStmt) == SQLITE_ROW) {
}
就像您在其他地方使用过insertStmt
一样。compiledStatement
是未定义的,因为我理解你的代码。
发布于 2011-06-14 19:46:41
数据库是否有一个名为"data“的表?无关紧要的事,但还是。此外,还要检查sqlite3_step
在每一步中返回的内容。
https://stackoverflow.com/questions/6349039
复制