[self openDB];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *set = [defaults stringForKey:@"defaultSet"];
if ([set length] > 0) {
NSString *trySql = [NSString stringWithFormat:@"SELECT setName FROM setData WHERE setName = `%@`", set];
sqlite3_stmt *tryStatement;
if (sqlite3_prepare_v2(db, [trySql UTF8String], -1, &tryStatement, nil)==SQLITE_OK) {
NSLog(@"set here");
} else {
NSAssert(0, @"%s", sqlite3_errmsg(db));
sqlite3_close(db);
}
}
所以我返回reason: 'no such column: set'
现在,这就是我通常会写的方式,除了我会在.php中使用PDO ::技术,但在目标c中它有些不同。我不确定我是否正确使用它。
我是否需要某种bindValue,或者我是否想要找到一个带有行名和/或..的列名?
答案 0 :(得分:0)
反引号用于引用列名。 (SQL实际上使用双引号,只支持与MySQL兼容的反引号。)
在SQL中,字符串用单引号引用:
... WHERE `SomeColumn` = 'SomeString'
无论如何,你应该use parameters代替。