网络企业网站建设方案,网站建设到上线,wordpress修改最大32m,做金融在那个网站上找工作我用的是dev-c 4.9.9.2 withMingw/GCC 3.4.2加C语言连接mySQL如果使用的是msvc的编译器#xff0c;那么使用的libmysql.lib是没问题的#xff0c;但是如果使用的是mingw编译器#xff0c;那就会出错#xff0c;有undefinedreference....等类错误字样。这是因为mingw使用的库…我用的是dev-c 4.9.9.2 withMingw/GCC 3.4.2加C语言连接mySQL如果使用的是msvc的编译器那么使用的libmysql.lib是没问题的但是如果使用的是mingw编译器那就会出错有undefinedreference....等类错误字样。这是因为mingw使用的库和msvc使用的不同格式的库而引起的。而mysql只提供了msvc可使用的库。mingw要想编译出qsqlmysql库来我们先得编译出mingw需要的libmysql.a这个文件来可以使用mingw工具来生成。mingw-utils包里的reimp命令(如果没有这个命令的话可从然后运行:cd c:\mysql\lib\opt //进入c:\mysql\lib\optc:\mysql\lib\opt c:\dev-c\mingw32\bin\reimp-d libmysql.lib此时在c:\mysql\lib\opt下生成了libmysql.def文件然后运行:c:\mysql\lib\optc:\dev-c\mingw32\bin\dlltool -k -d libmysql.def -llibmysql.a一切ok!在 c:\mysql\lib\opt下生成了libmysql.a文件libmysql.lib文件就转换成了libmysql.a文件,就可以应用了记得在工程--工程属性--参数里面,加入库或者对象,把你生成的libmysql.a添加进去,然后编译执行,就ok了!下面是我从网上copy的别人的代码,用上面的方法,加上下面这段代码就可以成功实现c连接mysql!代码如下:#include #include #include #include int main( int argc, char * argv[]){char szTargetDSN[] test;char szSqlText[500];char aszFlds[ 25 ][ 25 ];MYSQL * myData ;MYSQL_RES * res ;MYSQL_FIELD * fd ;MYSQL_ROW row ;int i,j,k;BOOL bCreate TRUE;//初始化数据结构,连接数据库if ( (myData mysql_init((MYSQL*)0)) mysql_real_connect(myData, NULL,root, root,szTargetDSN,MYSQL_PORT, NULL, 0 ) ){if(bCreate){//构造SQL语句//新建一张表sprintf(szSqlText, create table mytable(time datetime, s1char(6),s2 char(11), s3 int, s4 int));if (mysql_query( myData,szSqlText))//执行SQL语句{//执行SQL语句出错//ErrLog( Cant create table) ;mysql_close( myData ) ;return FALSE ;}}//向表中插入数据//注意时间的格式sprintf(szSqlText,insert into mytable values(2000-3-1021:01:30,Test,MySQLTest,2000,3));if (mysql_query( myData,szSqlText)){//执行SQL语句出错//ErrLog( Cant insert data to table);mysql_close( myData ) ;return FALSE ;}sprintf(szSqlText, select * from mytable);if (mysql_query( myData,szSqlText))//进行数据检索{//执行SQL语句出错mysql_close( myData ) ;return FALSE ;}else{res mysql_store_result( myData );//取得查询结果i (int) mysql_num_rows( res ) ;//取得有效记录数printf( Query: %s\n%ld records found:\n,szSqlText, i ) ;for ( i 0 ; fd mysql_fetch_field( res );i)strcpy( aszFlds[ i ], fd-name );//取得各字段名for (i1; row mysql_fetch_row( res );)//依次读取各条记录{j mysql_num_fields( res ) ;//取得记录中的字段数printf( Record #%ld:-\n, i ) ;for ( k 0 ; k j ; k )//输出各字段的值printf( Fld #%d (%s): %s\n, k 1, aszFlds[k ],(((row[k]NULL)||(!strlen(row[k])))?NULL:row[k]));puts( \n );}mysql_free_result( res ) ;}}else{//连接数据库出错//ErrLog( Cant connect to the mysql server ) ;mysql_close( myData ) ;return FALSE ;}mysql_close( myData ) ;return TRUE ;}