C语言 如何将变量 插入mySQL数据库,mySQL C语言封装变量的问题 5

因为插入数据库的数值是一些变量,所以就考虑如何在插入语句中使用变量,网上搜到的是两种方法,一种生:“+a+”“+b+“这种方法试过,不成功,会报错。第二种方法是:用spr... 因为插入数据库的数值是一些变量,所以就考虑如何在插入语句中使用变量,网上搜到的是两种方法,一种生:“+a+” “+b+“ 这种方法试过,不成功,会报错。
第二种方法是:用sprintf() 函数将变量装成字符串,然后放入命令种,由于我的变量比较多(几十个),所以这种的话要开辟的临时空间比较大,我并不喜欢这样额外消耗内存的。

请问我应该怎么做呢? 我用的是C语言的,希望大家不要没有试过就随便乱贴其他语言的用法过来。
展开
 我来答
秀乞群群
推荐于2018-12-04 · TA获得超过19万个赞
知道顶级答主
回答量:6.7万
采纳率:91%
帮助的人:2.4亿
展开全部
假如用户输入的姓名和年龄值分别保存在变量name,age中:
char sql_insert[200];
sprintf(sql_insert, "INSERT INTO table values('%s','%d');", name, age);
mysql_query(&mysql_conn, sql_insert);
上述语句在执行完sprintf语句后,sql_insert中保存的是INSERT查询语句字符串,sql_insert作为mysql_query()语句的参数即可实现正确的插入。
百度网友a5eb3e1
2013-11-13 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2645万
展开全部

可以统一用一条 sprintf 语句:

int a, b;
char sql[BUFSIZ];
sprintf(sql, "insert into mytable values (%d, %d)", a, b);
追问
我说了尽量不用sprintf()方法,因为要多开辟一个数组的空间存放字符串,我插入的变量好几十个,每个变量几十字节,这样的话我就要开辟一个几百个字节的数组,内存消耗很大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-08-17
展开全部
第一种方法可以实现,你是不是少了单引号,应该是'"+a+"'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式