C++ mysql API操作数据库(以当前日期建表,插入)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mengxiangjia_linxi/article/details/80645718

需求:
连接已存在的数据库,并以当前日期为名创建数据表,然后进行插入操作

说明:以下为代码片,并不能直接运行,仅可做参考!!!

//数据库相关
const char user[] = "bladed";         
const char pswd[] = "bladed";        
const char host[] = "47.xx.xx.xx";   //数据库服务器IP 
const char database[] = "bladed";       
unsigned int port = 3306; 
char sql[255]=""; 

struct NowDate
{
    char tmp0[16]; //年月日
    char tmp1[16]; //时分秒
};

NowDate date;

连接数据库:

//连接Mysql数据库
mysql_init(&conn);//初始化mysql
//连接mysql:连接句柄、主机IP、数据库用户、密码、数据库名、端口、。。。
MYSQL *ret = mysql_real_connect(&conn, host, user, pswd, database, port, NULL, 0);   
if (!ret)  
{  
    MessageBox((LPCSTR)"连接数据库失败!",(LPCSTR)"数据库", MB_OK);  
}
else
{
    MessageBox((LPCSTR)"连接数据库成功!",(LPCSTR)"数据库", MB_OK);
}

创建数据表:

//获取当前时间戳
time_t timep;
time (&timep);
strftime(date.tmp0, sizeof(date.tmp0), "%Y-%m-%d",localtime(&timep) ); //年月日
strftime(date.tmp1, sizeof(date.tmp1), "%H:%M:%S",localtime(&timep) ); //时分秒

//判断数据库中有无以今天日期作为表名的数据表,不存在则创建
sprintf(sql,"create table if not exists `%s`(id int not null primary key auto_increment, \
            HHMMSS varchar(20), \
            Pe double(11,4), \
            Wg double(8,4), \
            Wt double(6,4), \
            Vw double(6,4), \
            Tg double(11,4))",date.tmp0);
mysql_query(conn, sql);

插入数据:

//插入数据
sprintf(sql,"insert into `%s`( HHMMSS, Pe, Wg, Wt, Vw, Tg) values('%s',%lf,%lf,%lf,%lf,%lf);",\
    date.tmp0,date.tmp1,Status[1],Status[2],Status[3],Status[4],Controls[0]);
mysql_query(conn, sql);

//关闭mysql连接
mysql_close(&conn);

说明:

命令 解释
id int not null primary key auto_increment 表示设置主键,并自增
Pe double(11,4) 11位,且小数点后数据占4位

结果截图:
==表格式==:
这里写图片描述
==表写入==:
这里写图片描述

图中所用软件:Navicat for mysql

更多参考:
MySQL创建表语句包含主键、索引、约束
https://blog.csdn.net/feeltouch/article/details/52653851
Mysql怎么保留小数点后指定位数并做进位(向上取)处理
https://blog.csdn.net/ls0111/article/details/80069130

猜你喜欢

转载自blog.csdn.net/mengxiangjia_linxi/article/details/80645718