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

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

mysql库文件(下载地址:http://download..net/source/3425857)和libmysqlclient.a文件(下载地址:http://download..net/source/3425860)。

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

[objc] view

plaincopy

//连接数据库

[objc] view

plaincopy

-(void)connectHost:(NSString*)hostconnectUser:(NSString*)userconnectPassword:(NSString*)passwordconnectName:(NSString*)name

{

myconnect = mysql_init(nil);

//新增。设置编码(解决中文乱码问题)

mysql_options(myconnect, MYSQL_SET_CHARSET_NAME, "gb2312");

myconnect = mysql_real_connect(myconnect,[hostUTF8String],[userUTF8String],[passwordUTF8String],[nameUTF8String],MYSQL_PORT,NULL,0);

if(!myconnect)

{

printf("error code=%i",mysql_errno(myconnect));

return;

}

NSLog(@"connected to Mysql");

}

[objc] view

plaincopy

[objc] view

plaincopy

//查询数据库中数据,参数sql既为SQL查询语句(@"select name from table1"),返回SQL语句查询到的结果,我理解的是recordArr中存放的是每组数据(每个column)中查询到的结果,而recordsArray中存放的是recordArr,即有几个column就有几个recorder。

-(NSMutableArray*)query:(NSString*)sql

{

if(!myconnect)

{

NSLog(@"Please connect first");

returnnil;

}

NSMutableArray*recordsArray = [[[NSMutableArrayalloc]init]autorelease];

mysql_query(myconnect, [sqlUTF8String]);

MYSQL_RES* result = mysql_store_result(myconnect);

intnum_rows = mysql_num_rows(result);

intnum_fields = mysql_num_fields(result);

for(inti=0;i

{

MYSQL_ROW row = mysql_fetch_row(result);

NSMutableArray*recordArr = [[NSMutableArrayalloc]init];

for(intj=0;j

{

//最新修改,解决中文乱码问题

//中文简体编码:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)

//NSString* value= [NSString stringWithUTF8String:row[j]];

NSString* value= [NSStringstringWithCString:row[j]encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)];

[recordArraddObject:value];

}

[recordsArrayaddObject:recordArr];

[recordArrrelease];

}

returnrecordsArray;

}

[objc] view

plaincopy

//断开数据库连接

[objc] view

plaincopy

- (void)disconnect

{

mysql_close(myconnect);

NSLog(@"Close From Mysql");

}

[objc] view

plaincopy

[objc] view

plaincopy

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

[objc] view

plaincopy

-(void)update:(NSString*)sql

{

if(myconnect)

{

mysql_query(myconnect, [sqlUTF8String]);

}

else

{

NSLog(@"Please connect to DB first");

return;

}

}

[objc] view

plaincopy

//连接按钮处理方法

[objc] view

plaincopy

-(void)btnConnectTapped:(id)sender

{

NSLog(@"%@",ipText.text);

NSLog(@"%@",duankouTextField.text);

NSLog(@"%@",nameTextField.text);

NSLog(@"%@",passwordTextField.text);

mysqlManager = [[MysqlManageralloc]init];

[mysqlManagerconnectHost:[NSStringstringWithFormat:@"%@",ipText.text]connectUser:nameTextField.textconnectPassword:passwordTextField.textconnectName:@"wgjchm"];

}

[objc] view

plaincopy

[objc] view

plaincopy

//查询按钮处理方法

[objc] view

plaincopy

-(IBAction)queryButtonTapped:(id)sender

{

//插入数据

[objc] view

plaincopy

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

[objc] view

plaincopy

//查询数据

NSMutableArray*res = [mysqlManagerquery:@"select name from fdgg"];

NSLog(@"%d",res.count);

for(inti =0; i 

{

NSMutableArray*record = [resobjectAtIndex:i];

for(intj =0; j 

{

//value既为查询到的name值

[objc] view

plaincopy

NSString*value = [recordobjectAtIndex:j];

NSLog(@"value=%@",value);

}

[objc] view

plaincopy

//断开连接

[mysqlManagerdisconnect];

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值