首先设计一个带 IP地址、端口号、用户名、密码 四个输入框及连接、查询等按钮的界面的 iOS 程序,然后引入要连接 MySQL 数据库 需要的文件:include mysql库文件和libmysqlclient.a文件。

然后添加一个实现连接mysql数据库及对数据库进行相关操作的方法的类。其实现连接mysql数据库及对数据库进行相关操作的方法的实现如下:


[objc] 


  1. //连接数据库  


[objc] 


    1. -(void)connectHost:(NSString *)host connectUser:(NSString *)user connectPassword:(NSString *)password connectName:(NSString *)name  
    2. {  
    3.       
    4. nil);  
    5. //新增。设置编码(解决中文乱码问题)  
    6. "gb2312");  
    7.  UTF8String],[user UTF8String],[password UTF8String],[name UTF8String],MYSQL_PORT,NULL,0);  
    8.       
    9. if(!myconnect)  
    10.     {  
    11. "error code=%i",mysql_errno(myconnect));  
    12. return;  
    13.     }  
    14.       
    15. @"connected to Mysql");  
    16. }


    [objc] 


      1. //查询数据库中数据,参数sql既为SQL查询语句(@"select name from table1"),返回SQL语句查询到的结果,我理解的是recordArr中存放的是每组数据(每个column)中查询到的结果,而recordsArray中存放的是recordArr,即有几个column就有几个recorder。  
      2. -(NSMutableArray*)query:(NSString *)sql  
      3. {  
      4. if(!myconnect)  
      5.     {  
      6. @"Please connect first");  
      7. return nil;  
      8.     }  
      9. NSMutableArray *recordsArray = [[[NSMutableArray alloc] init] autorelease];  
      10.       
      11.  UTF8String]);  
      12.     MYSQL_RES* result = mysql_store_result(myconnect);  
      13. int num_rows = mysql_num_rows(result);  
      14. int num_fields = mysql_num_fields(result);  
      15.       
      16. for(int i=0;i<num_rows;i++)  
      17.     {  
      18.         MYSQL_ROW row = mysql_fetch_row(result);  
      19. NSMutableArray *recordArr = [[NSMutableArray alloc] init];  
      20.           
      21. for(int j=0;j<num_fields;j++)  
      22.         {   
      23. //最新修改,解决中文乱码问题  
      24. //中文简体编码:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)  
      25. //NSString* value= [NSString stringWithUTF8String:row[j]];  
      26.  stringWithCString:row[j] encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)];  
      27.  addObject:value];  
      28.         }  
      29.           
      30.  addObject:recordArr];  
      31.  release];  
      32.     }  
      33. return recordsArray;  
      34. }


      [objc] 

      1. //断开数据库连接  

      [objc]


      1. - (void)disconnect  
      2. {  
      3.     mysql_close(myconnect);  
      4. @"Close From Mysql");  
      5. }


      [objc] 



      1. //修改数据库中的数据(无返回值)。删除、增加数据都可以调用此方法。  


      [objc]

      1. -(void)update:(NSString *)sql  
      2. {  
      3. if(myconnect)  
      4.     {  
      5.  UTF8String]);  
      6.     }  
      7. else  
      8.     {  
      9. @"Please connect to DB first");  
      10. return;  
      11.     }  
      12. }


      [objc]


      1. //连接按钮处理方法  


      [objc]


      1. -(void)btnConnectTapped:(id)sender  
      2. {  
      3. @"%@",ipText.text);  
      4. @"%@",duankouTextField.text);  
      5. @"%@",nameTextField.text);  
      6. @"%@",passwordTextField.text);  
      7.  alloc]init];  
      8.  connectHost:[NSString stringWithFormat:@"%@",ipText.text] connectUser:nameTextField.text connectPassword:passwordTextField.text connectName:@"wgjchm"];  
      9. }


      [objc] 


      1. //查询按钮处理方法  

      [objc]

      1. -(IBAction)queryButtonTapped:(id)sender  
      2. {  
      3. //插入数据



      [objc]


      1. [mysqlManager update:@"insert into fdgg values(5,'hc',1,80,0)"];  



      [objc]


      1. //查询数据  
      2. NSMutableArray *res = [mysqlManager query:@"select name from fdgg"];  
      3.   
      4. NSLog(@"%d",res.count);  
      5. for(int i = 0; i < [res count]; ++i)  
      6. {  
      7. NSMutableArray *record = [res objectAtIndex:i];  
      8. for(int j = 0; j < [record count]; ++j)  
      9.     {  
      10. //value既为查询到的name值


      [objc]


        1.     NSString *value = [record objectAtIndex:j];  
        2. @"value=%@",value);  
        3. }


        [objc]


        1.     //断开连接  
        2.  disconnect];  
        3. }


        注:如果是连本地数据库IP地址为:127.0.0.1或localhost      端口号默认为:3306(但不全是,要视情况而定)


        然后添加一个实现连接mysql数据库及对数据库进行相关操作的方法的类。其实现连接mysql数据库及对数据库进行相关操作的方法的实现如下:


        [objc] 


        1. //连接数据库  


        [objc]

        1. -(void)connectHost:(NSString *)host connectUser:(NSString *)user connectPassword:(NSString *)password connectName:(NSString *)name  
        2. {  
        3.       
        4. nil);  
        5. //新增。设置编码(解决中文乱码问题)  
        6. "gb2312");  
        7.  UTF8String],[user UTF8String],[password UTF8String],[name UTF8String],MYSQL_PORT,NULL,0);  
        8.       
        9. if(!myconnect)  
        10.     {  
        11. "error code=%i",mysql_errno(myconnect));  
        12. return;  
        13.     }  
        14.       
        15. @"connected to Mysql");  
        16. }

        [objc] 


          1. //查询数据库中数据,参数sql既为SQL查询语句(@"select name from table1"),返回SQL语句查询到的结果,我理解的是recordArr中存放的是每组数据(每个column)中查询到的结果,而recordsArray中存放的是recordArr,即有几个column就有几个recorder。  
          2. -(NSMutableArray*)query:(NSString *)sql  
          3. {  
          4. if(!myconnect)  
          5.     {  
          6. @"Please connect first");  
          7. return nil;  
          8.     }  
          9. NSMutableArray *recordsArray = [[[NSMutableArray alloc] init] autorelease];  
          10.       
          11.  UTF8String]);  
          12.     MYSQL_RES* result = mysql_store_result(myconnect);  
          13. int num_rows = mysql_num_rows(result);  
          14. int num_fields = mysql_num_fields(result);  
          15.       
          16. for(int i=0;i<num_rows;i++)  
          17.     {  
          18.         MYSQL_ROW row = mysql_fetch_row(result);  
          19. NSMutableArray *recordArr = [[NSMutableArray alloc] init];  
          20.           
          21. for(int j=0;j<num_fields;j++)  
          22.         {   
          23. //最新修改,解决中文乱码问题  
          24. //中文简体编码:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)  
          25. //NSString* value= [NSString stringWithUTF8String:row[j]];  
          26.  stringWithCString:row[j] encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)];  
          27.  addObject:value];  
          28.         }  
          29.           
          30.  addObject:recordArr];  
          31.  release];  
          32.     }  
          33. return recordsArray;  
          34. }


          [objc] 


          1. //断开数据库连接  


          [objc] 

          1. - (void)disconnect  
          2. {  
          3.     mysql_close(myconnect);  
          4. @"Close From Mysql");  
          5. }


          [objc]


          1. //修改数据库中的数据(无返回值)。删除、增加数据都可以调用此方法。  


          [objc] 


            1. -(void)update:(NSString *)sql  
            2. {  
            3. if(myconnect)  
            4.     {  
            5.  UTF8String]);  
            6.     }  
            7. else  
            8.     {  
            9. @"Please connect to DB first");  
            10. return;  
            11.     }  
            12. }


            [objc]


            1. //连接按钮处理方法  


            [objc]


            1. -(void)btnConnectTapped:(id)sender  
            2. {  
            3. @"%@",ipText.text);  
            4. @"%@",duankouTextField.text);  
            5. @"%@",nameTextField.text);  
            6. @"%@",passwordTextField.text);  
            7.  alloc]init];  
            8.  connectHost:[NSString stringWithFormat:@"%@",ipText.text] connectUser:nameTextField.text connectPassword:passwordTextField.text connectName:@"wgjchm"];  
            9. }



            [objc] 



            1. //查询按钮处理方法  



            [objc] 

            1. -(IBAction)queryButtonTapped:(id)sender  
            2. {  
            3. //插入数据


            [objc]


            1. [mysqlManager update:@"insert into fdgg values(5,'hc',1,80,0)"];  


            [objc]


            1. //查询数据  
            2. NSMutableArray *res = [mysqlManager query:@"select name from fdgg"];  
            3.   
            4. NSLog(@"%d",res.count);  
            5. for(int i = 0; i < [res count]; ++i)  
            6. {  
            7. NSMutableArray *record = [res objectAtIndex:i];  
            8. for(int j = 0; j < [record count]; ++j)  
            9.     {  
            10. //value既为查询到的name值



            [objc]


            1.     NSString *value = [record objectAtIndex:j];  
            2. @"value=%@",value);  
            3. }


            [objc]

            1.     //断开连接  
            2.  disconnect];  
            3. }

             

            注:如果是连本地数据库IP地址为:127.0.0.1或localhost      端口号默认为:3306(但不全是,要视情况而定)