Linux 下C语言连接mysql实例详解
Linux下C语言连接mysql实例详解
第一步:
安装mysql,参考:https://www.nhooo.com/article/39190.htm
第二步:
安装mysql.h函数库
sudoapt-getinstalllibmysqlclient-dev
执行之后就可以看到/usr/include/MySQL目录了
然后开始我们的链接.
首先看我的数据库
mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |chat_room| |mysql| |mysql_shiyan| |performance_schema| |sys| +--------------------+ 6rowsinset(0.00sec) mysql>usechat_room; Readingtableinformationforcompletionoftableandcolumnnames Youcanturnoffthisfeaturetogetaquickerstartupwith-A Databasechanged mysql>showtables; +---------------------+ |Tables_in_chat_room| +---------------------+ |user_message| +---------------------+ 1rowinset(0.00sec) mysql>select*fromuser_message; +------+-------+--------+ |ID|name|passwd| +------+-------+--------+ |1|linux|linux| |2|lyt|lyt| +------+-------+--------+ 2rowsinset(0.00sec)
可以看到,我在chat_room数据库中有user_message这张表,我们现在要做的就是读出这张表里的数据.
直接上代码
#include#include #include #include intmain(void) { char*sql; sql="SELECT*FROMuser_message;"; intres;//执行sql语句后的返回标志 MYSQL_RES*res_ptr;//指向查询结果的指针 MYSQL_FIELD*field;//字段结构指针 MYSQL_ROWresult_row;//按行返回查询信息 introw,column;//查询返回的行数和列数 MYSQL*conn;//一个数据库链接指针 inti,j; //初始化连接句柄 conn=mysql_init(NULL); if(conn==NULL){//如果返回NULL说明初始化失败 printf("mysql_initfailed!\n"); returnEXIT_FAILURE; } //进行实际连接 //参数conn连接句柄,hostmysql所在的主机或地址,user用户名,passwd密码,database_name数据库名,后面的都是默认 conn=mysql_real_connect(conn,"localhost","lyt","","chat_room",0,NULL,0); if(conn){ printf("Connectionsuccess!\n"); }else{ printf("Connectionfailed!\n"); } mysql_query(conn,"setnamesgbk");//防止乱码。设置和数据库的编码一致就不会乱码 res=mysql_query(conn,sql);//正确返回0 if(res){ perror("my_query"); mysql_close(conn); exit(0); }else{ //把查询结果给res_ptr res_ptr=mysql_store_result(conn); //如果结果不为空,则输出 if(res_ptr){ column=mysql_num_fields(res_ptr); row=mysql_num_rows(res_ptr); printf("查到%d行\n",row); //输出结果的字段名 for(i=0;field=mysql_fetch_field(res_ptr);i++){ printf("%10s",field->name); } puts(""); //按行输出结果 for(i=1;i |
结果
gcc-omysqla.c-L/usr/lib/mysql-lmysqlclient ./mysql Connectionsuccess! 查到2行 IDnamepasswd 1linuxlinux 2lytlyt注释写的相当清楚,有什么不清楚的可以给我留言,大家一块学习!