我使用
定义了一个值#define username "admin"
然后我想将char语句中的用户名用作sql as
const char *pSQL[1];
pSQL[1] = "update websrv_config set admin_id='" + username + "'";
但似乎有错误
error: invalid operands of types ‘const char [36]’ and ‘const char [6]’ to binary ‘operator+’
我怎么能克服它?
答案 0 :(得分:3)
试试这个:
pSQL[0] = "update websrv_config set admin_id='" username "'";
在c ++中,数组索引从0开始,所以当你删除了一个长度为1的数组时,它唯一可以有的索引是0.此外,'+'不用于c ++中的连接。
答案 1 :(得分:2)
这是一个C字符串,而不是std::string
(以及你在C中做的,而不是C ++),但如果你必须,你可以这样做:
pSQL[0] = "update websrv_config set admin_id='" username "'";
C-strings不能与+
连接,因为它们是字符串文字。
如果我是你,我会使用std::string
:
std::string sql = "update websrv_config set admin_id='";
sql += username;
sql += "'";
您可以使用
以const char*
格式(如果需要)获取内容
sql.c_str();
另请注意,由于username
是一个宏,因此无法在运行时更改它。
此外,如果你摆脱了宏,想想一些提供用户名的邪恶策划者:
"johnny'; DROP TABLE websrv_config;"