时间:2021-05-19
Linux 下C语言连接mysql实例详解
第一步:
安装mysql, 参考:
第二步:
安装mysql.h函数库
执行之后就可以看到/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 namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> 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注释写的相当清楚,有什么不清楚的可以给我留言,大家一块学习!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.C++连接和操作MySQL的方式系列文章:MySQL设计和命令行模式下建立详解C++利用MySQLAPI连接和操作数据库实例详解在Windows平台,我们可
MySQL设计和命令行模式下建立详解系列文章:MySQL设计和命令行模式下建立详解C++利用MySQLAPI连接和操作数据库实例详解1.数据表的设计MySQL数
linux下的C\C++多进程多线程编程实例详解1、多进程编程#include#include#includeintmain(){pid_tchild_pid;
MySQL修改密码实例详解许久不用MySQL了,今天打开HediSQL连接mysql时发现root密码忘记了,修改密码操作捣鼓了一阵子,记录一下,以备后用。(W
Linux静态库与动态库实例详解1.Linux下静态链接库编译与使用首先编写如下代码://main.c#include"test.h"intmain(){tes