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

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
    关注

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

    评论

报告相同问题?