我希望在vararg列表的每个参数上调用mysql_real_escape,然后将其传递给vsprintf以包含到SQL字符串中,无论如何我可以轻松地执行此操作吗? 似乎我错过了准备好的陈述,但这似乎无论如何都是有用的。
答案 0 :(得分:3)
致电va_start()
(和va_end()
)两次。
第一次在va_arg()
内部的循环中测试(和更改)每个参数;
以及下一次vsprintf
/* check args */
va_start(val, parm);
while (MORE_ARGUMENTS) {
arg = va_arg(val, char*);
/* mysql_real_escape(arg); */
}
va_end(val);
/* print */
va_start(val, parm);
vsprintf(buf, FORMAT_STRING, val);
va_end(val);