Soulcalibur_W 2019-08-01 15:20 采纳率: 0%
浏览 426

C++ Sprintf_s函数补全缺省内容

我数据库里面的字段类型是varchar,现在有name和password两个字段
现在要update_
比如

update logininfo set password = '222' where name='111';

用sprintf_s可以动态设置password和name的值
图片说明

C语言里,%s是C风格的字符串,不是string吧,
所以我用string.data函数把string类型转换为char类型

char update_sql[255];   
sprintf_s(update_sql, "update logininfo set password = %s where name = %s", s1.data(),s2.data());

转完以后sprintf_s函数是可以了,但是sprintf_s的结果update_sql
数据库不识别了,我调试过了,sprintf_s成功把s1s2的值传进去了

mysql_query(&ceshi, update_sql);

编译器执行mysql_query语句返回错误,
是因为update_sql里的password和name的值是char类型的?
以前直接

string sql3 = "update logininfo SET password = '2018'where name='2018'";
mysql_query(sql3);

编译器是能执行成功的,
想用sprintf成功设置update语句的string类型的参数
求大神指教!自己弄了一上午了,很难受

  • 写回答

2条回答 默认 最新

  • qq_35642688 2019-08-02 15:44
    关注

    会不会是少个引号的问题?

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况