DDR爱好者之家 Design By 杰米
Linux 下C语言连接mysql实例详解
第一步:
安装mysql, 参考:https://www.jb51.net/article/39190.htm
第二步:
安装mysql.h函数库
sudo apt-get install libmysqlclient-dev
执行之后就可以看到/usr/include/MySQL目录了
然后开始我们的链接.
首先看我的数据库
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | chat_room | | mysql | | mysql_shiyan | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec) mysql> use chat_room; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +---------------------+ | Tables_in_chat_room | +---------------------+ | user_message | +---------------------+ 1 row in set (0.00 sec) mysql> select * from user_message; +------+-------+--------+ | ID | name | passwd | +------+-------+--------+ | 1 | linux | linux | | 2 | lyt | lyt | +------+-------+--------+ 2 rows in set (0.00 sec)
可以看到,我在chat_room数据库中有user_message这张表,我们现在要做的就是读出这张表里的数据.
直接上代码
#include<stdio.h> #include<stdlib.h> #include<errno.h> #include<mysql/mysql.h> int main(void) { char *sql; sql="SELECT * FROM user_message;"; int res;//执行sql语句后的返回标志 MYSQL_RES *res_ptr;//指向查询结果的指针 MYSQL_FIELD *field;//字段结构指针 MYSQL_ROW result_row;//按行返回查询信息 int row,column;//查询返回的行数和列数 MYSQL *conn;//一个数据库链接指针 int i,j; //初始化连接句柄 conn = mysql_init(NULL); if(conn == NULL) { //如果返回NULL说明初始化失败 printf("mysql_init failed!\n"); return EXIT_FAILURE; } //进行实际连接 //参数 conn连接句柄,host mysql所在的主机或地址,user用户名,passwd密码,database_name数据库名,后面的都是默认 conn = mysql_real_connect(conn,"localhost","lyt","","chat_room",0,NULL,0); if (conn) { printf("Connection success!\n"); } else { printf("Connection failed!\n"); } mysql_query(conn,"set names gbk");//防止乱码。设置和数据库的编码一致就不会乱码 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 < row+1;i++){ result_row = mysql_fetch_row(res_ptr); for(j = 0;j< column;j++) { printf("%10s",result_row[j]); } puts(""); } } } //退出前关闭连接 mysql_close(conn); return 0; }
结果
gcc -o mysql a.c -L/usr/lib/mysql -lmysqlclient ./mysql Connection success! 查到2行 ID name passwd 1 linux linux 2 lyt lyt
注释写的相当清楚,有什么不清楚的可以给我留言,大家一块学习!
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]