在mysql中插入double型数据

cry3212001 2009-03-27 04:12:12
程序是用c++编写的。我的情况是这样的:现在mysql中建立了个表:Temeputre,含myid与temp,其中temp是double型的。在客户端有个程序,如下:
int mysql_insert_temp(double data)
{
MYSQL mydata;
double insert_temp=0.0;
insert_temp = data;
cout<<"insert_temp"<<insert_temp<<endl;//data的值可以传给insert_temp
if(NULL==mysql_init(&mydata))
{
cout<<"failed to init mysql"<<endl;
}
if(NULL==mysql_real_connect(&mydata,"localhost","root","root","test",MYSQL_PORT,NULL,0))
{
cout<<"failed to connect to mysql"<<endl;
}
char *s_sql=NULL;
s_sql="insert into tempeture (temp) values('insert_temp')";
if(mysql_query(&mydata,s_sql)!=0)
{
cout<<"query db failed"<<endl<<mysql_error(&mydata)<<endl;
}
insert_temp=0.0;
mysql_close(&mydata);
return 1;
}
问题是:我现在运行程序后在mysql中temp项都是0.0000,但是我如果将insert_temp换成具体的数字。如63.45699时,表tempeture中的temp项就有数据(为63.45699)。所以在c++语言中怎么象mysql数据库中插入double型的数据呢?谢谢
...全文
806 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cry3212001 2009-03-27
  • 打赏
  • 举报
回复
你这样的话,连编译都不能通过啊
fairchild811 2009-03-27
  • 打赏
  • 举报
回复
s_sql="insert into tempeture (temp) values('insert_temp')";
直接这样肯定不行吧,这样相当于传递的insert_temp这个字符串。

char buf应该可以吧,是不是要s_sql="insert into tempeture (temp) values('" + buf + "')";要多个单引号
cry3212001 2009-03-27
  • 打赏
  • 举报
回复
用您的方法试过了,还是老样子。
太乙 2009-03-27
  • 打赏
  • 举报
回复


char buf[10];
sprintf(buf, "%lf", insert_temp);
s_sql="insert into tempeture (temp) values(" + buf + ")";
太乙 2009-03-27
  • 打赏
  • 举报
回复
s_sql="insert into tempeture (temp) values('insert_temp')"; 

???这不对吧??

sql语句写错了~~

试试:

char buf[10];
//将insert_temp转换为字符串
s_sql="insert into tempeture (temp) values(" + buf + ")";

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧