我正在编写一个程序来打印出数千行(MySQL)SQL 指令,以异步时间发送到数据库服务器。每组 SQL 指令都将通过 *nix 管道重定向保存到文件中。
我面临的问题是关于字段的NULL值char *。如果有一个
printf ( "\"%s\" ", foo_field);
和 foo_field 可能是也可能不是NULL。
MySQL 需要接收一个 plain NULL,而不是 a "NULL",所以我必须在有值的时候去掉双引号NULL。当值不是NULL时,必须用双引号括起来。
对于我展示的情况,我可以放置 aif then以便参数为%sifNULL或\"%s\"if not NULL。
但是如果我们考虑一个有 20 个字段的 SQL 行,那么这样做就不是很好了。我怎样才能做到这一点?