我在Linux上编写了一个C程序,它读取本地Sqlite3数据库以更新远程MySQL数据库。 当Sqlite表中的可选字段为空时,我在执行select时得到字符串“(null)”。这以远程MySQL数据库中的许多“(null)”字符串结束。
当表的字段为空时,Sqlite3中是否有任何标志或配置选项可以获取空字符串?“
编辑:
作为CL。提到它是snprintf函数,在构建sql_query时,为NULL值创建“(null)”字符串。这不是我想要的所以我想我必须检查每个值,看看它是否为NULL?有没有更好的办法?在这个例子中没关系,但在真实的一个中有很多领域..
示例代码: 这是在sqlite select之后执行的回调函数,然后我用获得的数据构建一个sql查询来更新远程MySQL:
diag(c(svd(A)$d,0),nrow=3,ncol=4)
}
答案 0 :(得分:1)
使用snprintf
以这种方式编写SQL查询不仅是因为空值,还因为你可能遇到all kinds of trouble,因为你没有逃避你的字符串
我建议改用prepared statements API。当您使用它时,在C级别,您必须根据给定值是否为is_bool
来明确设置一些NULL
标记。