2011-01-27 7 views
0

親愛なるコミュニティ。コードはうまくコンパイルされていますが、空の配列を返します。同じベースリターンの同じコード。誰かが何かを提案するかもしれない?ココアで使用しているMysql

-(NSArray *) mysqlDirectQuery:(NSString *)query 
{ 
// query doesn't using now 
NSMutableArray *rows = [[NSMutableArray alloc] initWithCapacity:0]; 

MYSQL *sql = mysql_init(NULL); 
//mysql_options(sql, MYSQL_READ_DEFAULT_GROUP, "LibMySQL"); 
sql = mysql_real_connect(sql, "localhost", "root", "", "test2", 3306, NULL, 0); 
if (sql != NULL) { 
    mysql_query(sql, "select * from Users");   
    MYSQL_RES *qResult = mysql_store_result(sql); 
    if (qResult != NULL) { 
     MYSQL_ROW row; 
     while (row == mysql_fetch_row(qResult)) { 
       [rows addObject:[NSArray arrayWithObjects: 
           [NSString stringWithCString:row[0] encoding:NSISOLatin1StringEncoding], 
           nil]]; 
     } 
     mysql_free_result(qResult); 
    } 
    mysql_close(sql); 
    mysql_server_end(); 
} 
NSArray *resultArray = [NSArray arrayWithArray:rows]; 
rows = nil; 
return resultArray; 
} 

答えて

2

は、このべきではない:

while (row == mysql_fetch_row(qResult)) 

while (row = mysql_fetch_row(qResult)) 

なるあなたは下の行[0]を使用しているが、あなたはそれを割り当てていません。

+0

警告:セマンティクスの問題:括弧なしの条件として割り当ての結果を使用 – Alex

+0

while((row = mysql_fetch_row(qResult)!= null)whileを書くことで警告を消音することができます。 – diciu

関連する問題