C++ mysql API以当前日期建表,插入数据库的操作讲解
程序员文章站
2022-07-04 09:27:01
需求:
连接已存在的,并以当前日期为名创建数据表,然后进行插入操作
说明:以下为代码片,并不能直接运行,仅可做参考!!!
//数据库相关
const char user[] = "b...
需求:
连接已存在的,并以当前日期为名创建数据表,然后进行插入操作
说明:以下为代码片,并不能直接运行,仅可做参考!!!
//数据库相关 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