我正在编写一个程序,用于打印出数千行(MySQL)SQL指令以异步时间发送到数据库服务器。 每组SQL指令都将通过* nix管道重定向保存到文件中。printf NULL不带引号或不带NULL引用sql语句
我面临的问题是char *
字段的值为NULL
。 如果有一个
printf ("\"%s\" ", foo_field);
和foo_field可能会或可能不会NULL
。
MySQL需要收到一个普通的NULL
,而不是"NULL"
,所以我必须在有NULL
值时删除双引号。当值不是NULL
时,它必须用双引号括起来。
因为我已经证明我可以放置一个if then
,使得参数是%s
如果NULL
或\"%s\"
如果不是NULL
的情况。
但是,如果我们考虑一个包含20个字段的SQL行,那么这样做并不是那么好。我怎样才能做到这一点?
'if(foo_field)printf((“\”%s \“”,foo_field); else printf(“NULL”);' – BLUEPIXY
为什么你认为if-else不是一个好选择? – SuperSaiyan
打印只有文本字符串还是打印数字? –