24小时热门版块排行榜    

查看: 1622  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

cr153

新虫 (初入文坛)

[求助] C++调用mysql,想完成一个如下的查询,却查询失败。急求解决方法

case 3:     int paper_id;
                  cout<<"请输入ID"<                   cin>>paper_id;
                  res=mysql_query(&myCont,"select * from id_table where id=paper_id“);//查询



----------------------------------------------------------------------------------------------------
以上为局部代码
此功能很简单就是,用户输入想要查询的ID,然后数据库查询之后返回该ID的信息
问题好像是在代码中定义的int paper_id无法传入到mysql_query这个接口中
其实原因也很简单,整个SQL查询语句都在引号中,整个语句当作字符串。当然paper_id也当成了字符
  
  请问,想实现这个功能,应该怎么修改?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cr153

新虫 (初入文坛)

???????:
2?: Originally posted by chw521 at 2012-05-30 15:35:04
"select * from id_table where id=paper_id“ 改为 "select * from id_table where id=" + paper_id

????????????????
5楼2012-05-30 21:47:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cr153

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by bobobobo_8888 at 2012-05-30 16:44:14
int paper_id;
string paper_id;
                  cout<<"请输入ID"<<endl;
                  cin>>paper_id;
                  res=mysql_query(&myCont,"select *  ...

系统报错,重定义
6楼2012-05-30 21:48:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cr153

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by onluy at 2012-05-30 23:02:14
首先你要看下在表id_table中属性列id的数据类型。
如果是字符串。
res=mysql_query(&myCont,"select * from id_table where id=‘" + paper_id+“’”);
也就是这个查询语句应该是3个字符串构成的 ...

表中id的类型为int
8楼2012-05-31 11:20:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cr153

新虫 (初入文坛)

引用回帖:
9楼: Originally posted by nlyang at 2012-05-31 13:02:01
int的话,就必须把int转成字符串,大概思路如下:
char * sql=new char;
memset(sql,'\0',100);
sprintf(sql,"select * from id_table where id=%d;",paper_id);
再执行sql,

如果还是不对,你就直 ...

跪谢啊~
刚才用您的代码试了一下,功能成功实现了~
我不是知识不太了解啊,压根就不了解,挂科生啊~....
这是明天要叫的大作业里的一部分
  再次感谢,好人一生平安~
10楼2012-05-31 21:52:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cr153 的主题更新
信息提示
请填处理意见