需求:
连接已存在的数据库,并以当前日期为名创建数据表,然后进行插入操作
说明:以下为代码片,并不能直接运行,仅可做参考!!!
//数据库相关
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