IT门户网,专注电脑知识与技术及手机硬件信息服务网站!

当前位置:IT门户网 > 系统教程 >

iOS毗连mysql数据库及根基操纵

时间:2021-09-14    来源:IT门户网    人气:

首先设计一个带 ip地点、端标语、用户名、暗码 四个输入框及毗连、查询等按钮的界面的iOS措施,然后引入要毗连MySQL数据库需要的文件:include mysql库文件(下载地点:)和libmysqlclient.a文件(下载地点:)。

然后添加一个实现毗连mysql数据库及对数据库举办相关操纵的要领的类。其实现毗连mysql数据库及对数据库举办相关操纵的要领的实现如下:

[objc] view plain copy//毗连数据库  [objc] view plain copy-(void)connectHost:(NSString *)host connectUser:(NSString *)user connectPassWord:(NSString *)password connectName:(NSString *)name  {            myconnect = mysql_init(nil);    //新增。配置编码(办理中文乱码问题)     mysql_options(myconnect, MYSQL_SET_CHARSET_NAME, "gb2312");      myconnect = mysql_real_connect(myconnect,[host UTF8String],[user UTF8String],[password UTF8String],[name UTF8String],MYSQL_PORT,NULL,0);            if(!myconnect)      {          PRintf("error code=%i",mysql_errno(myconnect));          return;      }            NSLog(@"connected to Mysql");  }  [objc] view plain copy  [objc] view plain copy//查询数据库中数据,参数sql既为SQL查询语句(@"select name from table1"),返回SQL语句查询到的功效,我领略的是recordArr中存放的是每组数据(每个column)中查询到的功效,而recordsArray中存放的是recordArr,即有几个column就有几个recorder。  -(NSMutableArray*)query:(NSString *)sql  {      if(!myconnect)      {          NSLog(@"Please connect first");          return nil;      }      NSMutableArray *recordsArray = [[[NSMutableArray alloc] init] autorelease];            mysql_query(myconnect, [sql UTF8String]);      MYSQL_RES* result = mysql_store_result(myconnect);      int num_rows = mysql_num_rows(result);      int num_fields = mysql_num_fields(result);            for(int i=0;i<num_rows;i++)      {          MYSQL_ROW row = mysql_fetch_row(result);          NSMutableArray *recordArr = [[NSMutableArray alloc] init];                    for(int j=0;j<num_fields;j++)          {              //最新修改,办理中文乱码问题             //中文简体编码:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)              //NSString* value= [NSString stringWithUTF8String:row[j]];              NSString* value= [NSString stringWithCString:row[j] encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSChineseSimplif)];              [recordArr addObject:value];          }                    [recordsArray addObject:recordArr];          [recordArr release];      }      return recordsArray;  }  [objc] view plain copy//断开数据库毗连  [objc] view plain copy- (void)disconnect  {      mysql_close(myconnect);      NSLog(@"Close From Mysql");  }  [objc] view plain copy  [objc] view plain copy//修改数据库中的数据(无返回值)。删除、增加数据都可以挪用此要领。  [objc] view plain copy-(void)update:(NSString *)sql  {      if(myconnect)      {          mysql_query(myconnect, [sql UTF8String]);      }      else      {          NSLog(@"Please connect to DB first");          return;      }  }  [objc] view plain copy//毗连按钮处理惩罚要领  [objc] view plain copy-(void)btnConnectTapped:(id)sender  {      NSLog(@"%@",ipText.text);      NSLog(@"%@",duankouTextField.text);      NSLog(@"%@",nameTextField.text);      NSLog(@"%@",passwordTextField.text);      mysqlManager = [[MysqlManager alloc]init];      [mysqlManager connectHost:[NSString stringWithFormat:@"%@",ipText.text] connectUser:nameTextField.text connectPassword:passwordTextField.text connectName:@"wgjchm"];  }  [objc] view plain copy  [objc] view plain copy//查询按钮处理惩罚要领  [objc] view plain copy-(IBAction)queryButtonTapped:(id)sender  {      //插入数据  [objc] view plain copy[mysqlManager update:@"insert into fdgg values(5,'hc',1,80,0)"];  [objc] view plain copy//查询数据  NSMutableArray *res = [mysqlManager query:@"select name from fdgg"];    NSLog(@"%d",res.count);  for(int i = 0; i < [res count]; ++i)  {      NSMutableArray *record = [res objectAtIndex:i];      for(int j = 0; j < [record count]; ++j)      {          //value既为查询到的name值  [objc] view plain copy    NSString *value = [record objectAtIndex:j];      NSLog(@"value=%@",value);  }  [objc] view plain copy    //断开毗连      [mysqlManager disconnect];  }  注:假如是连当地数据库IP地点为:127.0.0.1或localhost      端标语默认为:3306(但不全是,要视环境而定)

相关文章

系统教程排行榜

更多>>

网络知识排行榜

更多>>

系统教程排行榜

更多>>

服务号