iOS连接mysql数据库及基本操作

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

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

[objc]  view plain  copy
  1. //连接数据库  
[objc]  view plain  copy
  1. -(void)connectHost:(NSString *)host connectUser:(NSString *)user connectPassword:(NSString *)password connectName:(NSString *)name  
  2. {  
  3.       
  4.     myconnect = mysql_init(nil);  
  5.   //新增。设置编码(解决中文乱码问题)  
  6.    mysql_options(myconnect, MYSQL_SET_CHARSET_NAME, "gb2312");  
  7.     myconnect = mysql_real_connect(myconnect,[host UTF8String],[user UTF8String],[password UTF8String],[name UTF8String],MYSQL_PORT,NULL,0);  
  8.       
  9.     if(!myconnect)  
  10.     {  
  11.         printf("error code=%i",mysql_errno(myconnect));  
  12.         return;  
  13.     }  
  14.       
  15.     NSLog(@"connected to Mysql");  
  16. }  
[objc]  view plain  copy
  1.   
[objc]  view plain  copy
  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.         NSLog(@"Please connect first");  
  7.         return nil;  
  8.     }  
  9.     NSMutableArray *recordsArray = [[[NSMutableArray alloc] init] autorelease];  
  10.       
  11.     mysql_query(myconnect, [sql 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.             NSString* value= [NSString stringWithCString:row[j] encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)];  
  27.             [recordArr addObject:value];  
  28.         }  
  29.           
  30.         [recordsArray addObject:recordArr];  
  31.         [recordArr release];  
  32.     }  
  33.     return recordsArray;  
  34. }  

[objc]  view plain  copy
  1. //断开数据库连接  
[objc]  view plain  copy
  1. - (void)disconnect  
  2. {  
  3.     mysql_close(myconnect);  
  4.     NSLog(@"Close From Mysql");  
  5. }  



[objc]  view plain  copy
  1.   
[objc]  view plain  copy
  1. //修改数据库中的数据(无返回值)。删除、增加数据都可以调用此方法。  
[objc]  view plain  copy
  1. -(void)update:(NSString *)sql  
  2. {  
  3.     if(myconnect)  
  4.     {  
  5.         mysql_query(myconnect, [sql UTF8String]);  
  6.     }  
  7.     else  
  8.     {  
  9.         NSLog(@"Please connect to DB first");  
  10.         return;  
  11.     }  
  12. }  


[objc]  view plain  copy
  1. //连接按钮处理方法  
[objc]  view plain  copy
  1. -(void)btnConnectTapped:(id)sender  
  2. {  
  3.     NSLog(@"%@",ipText.text);  
  4.     NSLog(@"%@",duankouTextField.text);  
  5.     NSLog(@"%@",nameTextField.text);  
  6.     NSLog(@"%@",passwordTextField.text);  
  7.     mysqlManager = [[MysqlManager alloc]init];  
  8.     [mysqlManager connectHost:[NSString stringWithFormat:@"%@",ipText.text] connectUser:nameTextField.text connectPassword:passwordTextField.text connectName:@"wgjchm"];  
  9. }  

[objc]  view plain  copy
  1.   
[objc]  view plain  copy
  1. //查询按钮处理方法  
[objc]  view plain  copy
  1. -(IBAction)queryButtonTapped:(id)sender  
  2. {  
  3.     //插入数据  
[objc]  view plain  copy
  1. [mysqlManager update:@"insert into fdgg values(5,'hc',1,80,0)"];  
[objc]  view plain  copy
  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]  view plain  copy
  1.     NSString *value = [record objectAtIndex:j];  
  2.     NSLog(@"value=%@",value);  
  3. }  
[objc]  view plain  copy
  1.     //断开连接  
  2.     [mysqlManager disconnect];  
  3. }  

注:如果是连本地数据库IP地址为:127.0.0.1或localhost      端口号默认为:3306(但不全是,要视情况而定)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值