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(但不全是,要視情況而定)
總結
以上是生活随笔為你收集整理的mysql 连接 iOS_iOS连接mysql数据库及基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超市进销存系统设计
- 下一篇: python优雅编程_Python优雅编