如何在数据库中使用登录有效值选择。第一个值选择正确登录但第二个值选择登录不正确

时间:2012-08-03 11:52:36

标签: iphone sqlite nsstring nslog

- (BOOL)addloginprofile:(NSString *)username andPassword:(NSString *)password
{
    //XYZAppDelegate *appDelegate = (XYZAppDelegate *)[UIApplication sharedApplication].delegate;
    //const char *sql = "select Name='%@',EnterPassword='%@' from ProfileTable";
    NSString *sql = [[NSString alloc] initWithFormat:@"select Name='%@',EnterPassword='%@' from ProfileTable",username,password];

    //NSString *sql = [NSString stringWithFormat:@"select Name='%@',EnterPassword='%@' from ProfileTable",username,password];

    NSLog(@"sql statment %@",sql);

    sqlite3_stmt *statment;
    if(sqlite3_prepare_v2(database, [sql UTF8String] , -1, &statment, NULL) == SQLITE_OK)
    //if(sqlite3_prepare_v2(database, [sql UTF8String] , -1, &statment, NULL) == SQLITE_OK)
    {
        if(sqlite3_step(statment) == SQLITE_ROW)
        {
            NSString *username=[[NSString alloc] initWithUTF8String:(const char *)       sqlite3_column_text(statment,0)];

            NSString *password=[[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statment,1)];
//          NSString *username = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statment, 1)];
//          NSString *password=[NSString stringWithUTF8String:(char *)sqlite3_column_text(statment, 2)];           
            NSLog(@"User name %@,",username);
            NSLog(@"password %@",password);
            if ([username isEqualToString:@"0"]&&[password isEqualToString:@"0"]) {
                return NO;
            }
            else return YES;

        }
}

1 个答案:

答案 0 :(得分:0)

我认为查询格式不正确,应该像@"select * from ProfileTable where Name='%@' and EnterPassword='%@'",username,password一样。