Objective-C и MySQL

Мне удалось подключиться к базе данных MySQL в моем приложении и использовать C API, который почти полностью аналогичен командам PHP ( mysql_real_connect (), mysql_query (), mysql_fetch_array () и т. д.), и с которыми мне довольно комфортно, я просто не знаю, как возвращается запрос данных. Использую ли я массив или словарь, а затем как мне его анализировать. Например, в PHP я бы сделал что-то вроде этого (после подключения):

$results = mysql_query("SELECT * FROM theDatabase"); 
if (mysql_num_rows($results) > 0) { 
    while($row = mysql_fetch_array($results)) {
       print $row;
    }
}

Каким будет эквивалент objective-c? Спасибо.

Edit:

Хорошо, я добился некоторого прогресса - я могу сделать запрос и получить количество возвращенных полей / строк, просто не может получить доступ к самим данным. Вот мой код, который я скомпилировал из документации MySQL и нескольких других сайтов:

- (IBAction)dbConnect:(id)sender {


NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
MYSQL mysql;
mysql_init(&mysql);

if (!mysql_real_connect(&mysql, "10.1.1.99", "******", "******", "oldphotoarchive", 0, NULL, 0)) {
    NSLog(@"%@", [NSString stringWithUTF8String:mysql_error(&mysql)]);
} else { 

    MYSQL_RES *result;
    MYSQL_ROW row;
    unsigned int num_fields;
    unsigned int num_rows;
    unsigned long *lengths;

    if (mysql_query(&mysql,"SELECT * FROM photorecord")) {
        // error
    } else { // query succeeded, process any data returned by it  

        result = mysql_store_result(&mysql);
        if (result)  {
            num_fields = mysql_num_fields(result);
            while ((row = mysql_fetch_row(result))) {
                lengths = mysql_fetch_lengths(result);

                for(int i = 0; i < num_fields; i++) {
                                            //the line below is my problem, printing row[i] fails, I get the GNU gdb error...
                    row[i] ? NSLog(@"%@", row[i]) : NSLog(@"wtf");
                }
            }


        } else  {// mysql_store_result() returned nothing; should it have?
            if (mysql_errno(&mysql)) {
                NSLog(@ "Error: %s\n", mysql_error(&mysql));
            } else if (mysql_field_count(&mysql) == 0) {
                // query does not return data
                // (it was not a SELECT)
                num_rows = mysql_affected_rows(&mysql);
            }
        }

    }

}

[pool release];
}
6
задан PruitIgoe 18 May 2011 в 18:44
поделиться