我正在使用sqlite.org上提供的 sqlite3 库。
我有一些未签名的 long 想要存储在数据库中。我不想自己构建查询并将其留给某种注入(无论它是否是偶然的)。因此,我正在使用这些sqlite_bind_*
函数来“清理”我的参数。
问题是无符号长整数没有函数类型,只有整数。
int sqlite3_bind_int(sqlite3_stmt*, int, int);
int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
如果我无法以无符号方式存储它们,我肯定会有数字溢出。
我需要自己管理吗?(即从数据库中选择后转换为无符号类型或在插入数据库之前转换为有符号类型)
如果我必须自己进行管理,那么当比较实际上是在无符号范围内时,如何进行一些存储为有符号长整数的比较查询?
查看被转换的INTEGER 数据类型,人们会认为 unsigned long 可以毫无问题地表示。
如果有其他解决方案,请赐教!谢谢!