博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu下C语言连接MySQL
阅读量:6708 次
发布时间:2019-06-25

本文共 3789 字,大约阅读时间需要 12 分钟。

 
 

最近写了哟个程序需要用C语言连接MySQL,是基于Ubuntu的,我就写了如下的代码(其中包括了UDP协议部分)

事实上我们就是通过系统自带的头文件通过SQL语句对数据库进行操作,这应该对熟悉数据库语言的人就非常简单了

附上可用的代码:

#include 
/* These are the usual header files */#include
#include
/* for close() */#include
#include
#include
#include
#include
#include
#define PORT 50001 /* Port that will be opened */#define MAXDATASIZE 100 /* Max number of bytes of data */MYSQL *mysql_conn;char *head="head";char *drift="drift";const char *host_name="localhost";const char *user_name="user";const char *password="password";const char *db_name="dbname";const unsigned int db_port=3306;char sql[512];void getMessageInsert(char receive_msg[]){int i=0,res=0;char temp[100];char *p[12];char *buff;strcpy(temp,receive_msg);buff=temp;for(i=0;i<12;i++)p[i]=NULL;//printf("%s\n",buff);char *token=strtok(buff,",");p[0]=token;i=0;while(token!=NULL){//printf("%s,i=%d\t",p[i],i);token=strtok(NULL,",");p[++i]=token;if(i>=11)break;}//printf("i=%d\n",i);if(i>=11&&strcmp(p[0],head)==0&&strcmp(p[11],drift)==0){// printf("%d,%d",strcmp(p[0],head),i); //printf("saved\n"); sprintf(sql,"insert into he%s(data_1,data_2,data_3,data_4,data_5,data_6,data_7,judge,longitude,latitude)values(%s,%s,%s,%s,%s,%s,%s,0,%s,%s)",p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10]); sprintf(sql,"insert into he%s(data_1,data_2,data_3,data_4,data_5,data_6,data_7,judge,longitude,latitude)values(%s,%s,%s,%s,%s,%s,%s,0,%s,%s)",p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10]); res=mysql_query(mysql_conn,sql); printf("%s\n",sql);if (!res) { //输出受影响的行数 printf("Inserted %lu rows\n",(unsigned long)mysql_affected_rows(mysql_conn)); } else { //打印出错误代码及详细信息 fprintf(stderr, "Insert error %d: %sn",mysql_errno(mysql_conn),mysql_error(mysql_conn)); sprintf(sql,"create table he%s(number int(9) unsigned not null auto_increment,p_data timestamp not null default current_timestamp,data_1 int(4) unsigned not null,data_2 int(4) not null,data_3 int(4) not null,data_4 int(4) not null,data_5 int(4) not null,data_6 int(4) not null,data_7 int(4) not null,judge tinyint(1) default 0,longitude decimal(11,8) not null,latitude decimal(11,8) not null,primary key(number))",p[1]); res=mysql_query(mysql_conn, sql); }}main(){int sockfd; /* socket descriptors */struct sockaddr_in server; /* server's address information */struct sockaddr_in client; /* client's address information */socklen_t sin_size;int num;char recvmsg[MAXDATASIZE]; /* buffer for message */char sendmsg[MAXDATASIZE];char condition[] = "quit";//打开数据库mysql_conn=mysql_init(NULL);if(!mysql_real_connect(mysql_conn, host_name, user_name, password, db_name, db_port, NULL, 0)){ printf("connect error"); exit(1);}/* Creating UDP socket */if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {/* handle exception */perror("Creating socket failed.");exit(1);}

 

代码完成之后就开始编译了,不过问题出现了

root@iZ28j1w4g5uZ:/home/myCProgrammer# vim udp_save.c

root@iZ28j1w4g5uZ:/home/myCProgrammer# gcc udp_save.c -o udp_save
/tmp/ccaY48dW.o: In function getMessageInsert':
udp_save.c:(.text+0x201): undefined reference to
mysql_query’
udp_save.c:(.text+0x229): undefined reference to mysql_affected_rows'
udp_save.c:(.text+0x248): undefined reference to
mysql_error’
udp_save.c:(.text+0x257): undefined reference to mysql_errno'
udp_save.c:(.text+0x2a8): undefined reference to
mysql_query’
/tmp/ccaY48dW.o: In function main':
udp_save.c:(.text+0x301): undefined reference to
mysql_init’
udp_save.c:(.text+0x354): undefined reference to `mysql_real_connect’
collect2: error: ld returned 1 exit status
root@iZ28j1w4g5uZ:/home/myCProgrammer#

当然,我们换一种编译方式:

 gcc -o udp_save $(mysql_config --cflags) udp_save.c $(mysql_config --libs)
这样就可以通过编译了

 

转载于:https://www.cnblogs.com/h1994zw/p/7476321.html

你可能感兴趣的文章
9.C#--if else-if嵌套练习
查看>>
範本學習 - 什么是ArchiMate图?
查看>>
单机架构升级集群架构--redis主从集群搭建工作记
查看>>
ldap2.4主主双向部署
查看>>
是什么样的步骤,使得你的ios代码变得如此容易阅读?大咖分享
查看>>
mysql配置主从复制,读写分离(附amoeba源码包)
查看>>
Linux基础:Linux下硬链接与软连接有什么不同
查看>>
面试前必须要知道的Redis面试题
查看>>
HTML DOM 定义了访问和操作 HTML 文档的标准方法。
查看>>
Python练习【利用线程池爬取电影网站信息】
查看>>
web前端技术课程内容详解之语义化标签的理解
查看>>
linux下配置NFS服务
查看>>
基于源码编译安装Mariadb实现多实例
查看>>
资本寒冬时代云视频协作价值突显
查看>>
怎样把WORD表格转换成EXCEL
查看>>
必读的Python入门书籍,你都看过吗?(内有福利)
查看>>
网易云课堂资源合集百度云分享
查看>>
哪些设计技巧让你的UI设计更加出彩?
查看>>
【非凡程序员】 OC第九节课 (KVC的运算买粽子的例子 sum,avg,min)
查看>>
String StringBuffer StringBuilder的比较
查看>>