问题描述
- 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