mysql-MySQL如何用C++通过函数把变量录入到数据库中

问题描述

MySQL如何用C++通过函数把变量录入到数据库中

以下是关键代码

 /*
        for (int i = 1; i <= n; i++)
        {
            res = mysql_query(&myCont, "INSERT INTO `i` (`id`, `name`, `age`, `subject`, `score`) VALUES ('3', 'C', '12', '英语', '100')");//查询  

        }
        */   //模板
        for (int i = 1; i <= n; i++)
        {
            int id; /*char name[10]*/; int age; /*char subject[10]*/; int score; string name; string subject;

            cout << "intput id:"; cin >> id; cout << endl;
            cout << "input name:"; getline(cin, name);
            cout << "intput sge:"; cin >> age; cout << endl;
            cout << "input subject:"; getline(cin, subject);
            cout << "intput score:"; cin >> score; cout << endl;

            res = mysql_query(&myCont, "INSERT INTO `i` (`id`, `name`, `age`, `subject`, `score`)VALUES (id, 'name', age, 'subject', score)");
            //VALUES('3', 'C', '12', '英语', '100')");//查询  

        }

res = mysql_query(&myCont, "INSERT INTO i (id, name, age, subject, score)VALUES (id, 'name', age, 'subject', score)");
现在问题就是这句怎么改

解决方案

用字符串拼接方式把变量组合sql语句字符串 然后执行

解决方案二:

方法1:用string拼接

string str = "NSERT INTO i (id, name, age, subject, score)VALUES ('";
std::stringstream ss;
std::string str_id;
ss<<id;
ss>>str_id;
str = str + str_id;

...........(照此拼接下去,楼主注意别少拼单引号就行了)
方法2:用sprintf格式化写入

char str[64] = "NSERT INTO i (id, name, age, subject, score)VALUES ('";
char buffer[128] = {0};
int id = 4;
sprintf(buffer, "%s%d',", str, id);

照此写下去。。。。。别忘记拼逗号和单引号什么的

时间: 2024-11-03 12:22:16

mysql-MySQL如何用C++通过函数把变量录入到数据库中的相关文章

link中发射调用函数的变量,在内存中究竟是怎么存放的?是静止不变的么?

问题描述 link中发射调用函数的变量,在内存中究竟是怎么存放的?是静止不变的么? link中发射调用函数的变量,在内存中究竟是怎么存放的?是静止不变的么? 解决方案 反射调用方法,和正常调用没有区别,只是正常调用编译器就直接将跳转到方法的指令写在程序中了,而反射多一个获取方法地址的操作. 如果是局部变量,还是在堆栈上的,并且在方法结束后回收.

如何恢复MYSQL实体文件MYI,MYD到数据库中

从MYSQL备份下来的MYI,MYD等文件,怎么样才能导入数据库中呢? 有mysql的*.MYD,*.myi,*.frm文件如何恢复到另一个数据库(windows系统)   其实很简单,只要把 这些文件复制到 MYSQL的安装目录 /DATA/数据库名/下面,然后重启一下MYSQL就可以. 如果你的MYSQL在windows下安装为服务的话,通过下面的命令就可以实现重启. net stop mysql net start mysql

MySQL数据库中数据库移植中的乱码问题

MySQL移植含有中文的数据时,很容易出现乱码问题.很多是在从MySQL4.x向MySQL5.x移植的时候出现.MySQL的缺省字符集是latin1,在使用MySQL4.x的时候,很多人都是用的latin1字符集.而当使用MySQL5时往往愿意使用UTF-8.那么我们的任务是不是要把数据中的字符从latin1转为UTF-8呢?不是的. 用一句不大准确,但又比较形象的说法是,在之前的系统中,我们是用latin1保存了使用GB系列字符集(GBK.GB2312等)的汉字.怎么这样说呢? 以下为引用的内

在Node.js中使用MySQL&amp;MySQL JavaScript客户端

NoSQL 数据库最近一段时间都是很受追捧的,也许已经是 Node.js 应用程序的首选后端了.不过,你不应该只是根据潮流来选择拿什么技术构建下一个项目,使用什么数据库类型要取决于项目的特定需求.如果你的项目涉及到动态表的创建,实时的插入等等,那么 NoSQL 就是不错的技术路线,而另一方面,如果项目中要处理复杂的查询和事务,那么 SQL 数据库就更加合适了. 在本教程中,我们会向你介绍如何使用 MySQL 模块 - 这是一个用 JavaScript 编写的运行在 Node.js 之上的 MyS

MySQL获取系统当前时间的函数

环境:MySQL Server 5.1 问题:MySQL获取系统当前时间的函数 解决: NOW()函数以'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中. CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,可以直接存到DATE字段中. CURTIME()以'HH:MM:SS'的格式返回当前的时间,可以直接存到TIME字段中. 示例: SQL: select now() as 当前日期时间; select curdate() as 今

我的MYSQL学习心得(六) 函数

这一节主要介绍MYSQL里的函数,MYSQL里的函数很多,我这里主要介绍MYSQL里有而SQLSERVER没有的函数 数学函数 1.求余函数MOD(X,Y) MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数 SELECT MOD(31,8)   2.四舍五入函数TRUNCATE(X,Y) TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x.若y的值为0,则结果不带有小数点或不带有小数部分. 若y设为负数,则截去(归零)x小数点左边

与MSSQL对比学习MYSQL的心得(六)--函数_Mysql

数学函数 1.求余函数MOD(X,Y) MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数 SELECT MOD(31,8) 2.四舍五入函数TRUNCATE(X,Y) TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x.若y的值为0,则结果不带有小数点或不带有小数部分. 若y设为负数,则截去(归零)x小数点左边起第y位开始后面所有低位的值. SELECT TRUNCATE(1.32,1) TRUNCATE(1.32,1)保留小数点

mysql日期相加日期时间 DATE_ADD()函数

DATE_ADD() 函数向日期添加指定的时间间隔. 语法 DATE_ADD(date,INTERVAL expr type)date 参数是合法的日期表达式.expr 参数是您希望添加的时间间隔. type 参数可以是下列值: Type 值 MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND

在MySQL数据库中使用C执行SQL语句

mysql|数据|数据库|语句|执行 与PostgreSQL相似,可使用许多不同的语言来访问MySQL,包括C.C++.Java和Perl.从Professional Linux Programming中第5章有关MySQL的下列章节中,Neil Matthew和Richard Stones使用详尽的MySQL C接口向我们介绍了如何在MySQL数据库中执行SQL语句.他们将讨论返回数据的语句,例如INSERT以及不返回数据的语句,例如UPDATE和DELETE.然后,他们将编写从数据库检索数据