Det finns inget Objective-C API för MySQL från Apple. Det finns dock några tredje parts omslag av C API. Ta en titt på MySQL-Cocoa Framework , till exempel.
Med tanke på din förtrogenhet med PHP och C API kan det vara enklare för dig att helt enkelt använda C API. Du måste hantera konvertering mellan objekt och C-datatyper, men det här är inte mycket arbete.
Redigera
Du kraschar eftersom radvärdet som returneras av mysql API inte är ett objekt, och din formatsträng talar om för NSLog
att behandla det som en. %@
är en formatsträngsplatshållare för ett objekt, inte en C-datatyp.
Det är inte klart vad värdet är i det här fallet. Sammanhanget verkar antyda att det är bilddata. Om så är fallet vill du troligen skapa en NSData
objekt från blobben som returneras av frågan, t.ex.:
NSData *imageData;
imageData = [[ NSData alloc ] initWithBytes: row[ i ] length: lengths[ i ]];
NSLog( @"imageData: %@", imageData );
/* ...create NSImage, CGImage, etc... */
[ imageData release ];
Om dina resultatfält bara är strängar, använd NSString
s -initWithBytes:length:encoding:
metod:
NSString *s;
s = [[ NSString alloc ] initWithBytes: row[ i ] length: lengths[ i ]
encoding: NSUTF8StringEncoding ];
NSLog( @"result column %d: %@", i, s );
[ s release ];