windows下连接mysql
来源:互联网 发布:软件测试有哪些 编辑:程序博客网 时间:2024/05/23 15:26
#include <stdio.h>#include <pthread.h>#include <string.h>#include <stdlib.h>#include <WinSock2.h>#include <mysql.h>#include <windows.h>void *thread_fun(void *);int main(){pthread_t thread_id[10];int i;//MYSQL mysql;//if(mysql_init(&mysql)==NULL)//return -1;for( i = 0; i < 10; i++){pthread_create(&thread_id[i], NULL, thread_fun, NULL);}for(i = 0; i < 10 ; i++){pthread_join(thread_id[i], NULL);}return 0;}void *thread_fun(void *ptr){MYSQL mysql; MYSQL_RES * result; MYSQL_ROW row; const char * host = "localhost"; const char * user = "root"; const char * passwd = "123456"; const char * db = "testmysql"; if(mysql_init(&mysql)==NULL)exit(1);mysql_thread_init(); if ( mysql_real_connect(&mysql, "localhost", "root", "123456", "testmysql", 3306, NULL, 0) == NULL ) { printf("connect error: \n"); fprintf(stderr, " %s\n", mysql_error(&mysql)); exit(1); } else { fprintf(stderr, "connect success.\n"); } const char * i_query = "select * from children";if ( mysql_query(&mysql, i_query) != 0 ) { fprintf(stderr, "query error.\n"); exit(1); } else { if ( (result = mysql_store_result(&mysql)) == NULL ) { fprintf(stderr, "store error.\n"); exit(1); } else { while ( (row = mysql_fetch_row(result)) != NULL ) { printf("id is %s\t",row[0]);printf("name is %s\t", row[1]); printf("age is %s\t\n", row[2]); } } } mysql_close(&mysql);mysql_free_result(result);mysql_thread_end();return ((void *)0);}
需要注意的事项:
1:WinSock2.h需要放在windows.h前面,否则有可能出现问题。
2:有可能弹出this handle is already connected。Use separate handle foreach connection的错误,提示说,这个句柄已经连接用掉了,其他的连接需要用
其他的的句柄。(我认为,pthread_create()函数调用了10次thread_fun(),thread_fun()中每次都重新建立连接,断开连接了,这里应该不会出错。直到现在,我还
不知道这个想法到底是错是对)。但是这个错误是:因为以前内存中存在其他的连接而造成的,所以用清除内存函数,清除一下 MYSQL句柄,就行了。以后就不会出现这个问
题了。
3:第三个特别需要注意的事项:调用mysql_real_conect()函数之前一定要调用mysql_init(),否则会出现各种各样的问题。(而在main函数中是否在调用一 次MYSQL
mysql;mysql_init()。调用不调用都不会出错。为什么这样,不太清楚)。
- windows下连接mysql
- windows 下qt 连接mysql
- windows下c连接mysql
- Windows下C++连接MySQL
- windows下,Qt连接Mysql
- windows下设置mysql允许远程连接
- Windows下用GCC连接MySQL数据库
- windows 下之连接mysql,libmysql.dll
- Windows下Eclipse CDT连接MySQL数据库
- windows连接虚拟机linux下mysql配置
- Windows下C语言连接MySQL
- Windows下实现Qt与MySQL连接
- Windows下C语言连接MySQL
- Windows平台下Codeblocks连接Mysql数据库
- windows连接虚拟机linux下mysql配置
- Windows下C语言连接MySQL
- freeswitch core windows下odbc 连接mysql
- windows下使用jdbc连接MySQL
- 第八周项目5-编译密码
- c++
- JS中实现replaceAll的方法
- C语言中空字符,空格
- HDU 3605 Escape(多重KM,4级)
- windows下连接mysql
- 正则表达式基础
- Android Studio 快捷键
- WebService压缩传输
- 解除IIS文件下载限制
- android Dialog去掉标题栏 和边框
- arm反汇编方法
- Interface和abstract类不能含有Static方法
- 在linux环境上面,建立双机信任关系