对于空值,SQlite select返回“(null)”而不是“”

时间:2015-11-24 16:40:25

标签: mysql linux database sqlite

我在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)

}

1 个答案:

答案 0 :(得分:1)

使用snprintf以这种方式编写SQL查询不仅是因为空值,还因为你可能遇到all kinds of trouble,因为你没有逃避你的字符串

我建议改用prepared statements API。当您使用它时,在C级别,您必须根据给定值是否为is_bool来明确设置一些NULL标记。