可以将某个结构体变量插入到数据库中的某个字段里吗?

时间:2022-06-23 15:34:03
我现在想把某个结构体变量,插入到数据库中的某个表的某个字段里。注意:结构体里定义了多个变量,而我想把它插入到一个字段里保存。以前操作数据库时,都是一个变量插入到一个字段里,没做过这种。请大家给指点一下,这种方法可行吗?该怎么实现呢?我用的是MySQL数据库。

5 个解决方案

#1


可能你的为该结构体,定义一个数据库表,每个结构体的作为该表的一个记录。然后把该记录号插入你要的表的字段去。就是2个表,关联起来。

#2


引用 1 楼 hztj2005 的回复:
可能你的为该结构体,定义一个数据库表,每个结构体的作为该表的一个记录。然后把该记录号插入你要的表的字段去。就是2个表,关联起来。
我明白你的意思。我现在是在别人的软件上做维护,要是新建一个表,或是新建多个字段来保存结构体中的数据的话,那样改动就大了。所以我现在想尝试着,可不可以将一个结构体保存到一个字段里。因为以前没做过这种,所以不知道这种方案是否具备可行性。

#3


方法很多,

比如直接把整个结构以二进制的形式保存为一个BLOB字段就可以了,就像把图片保存到BLOB字段一样,

或者把整个结构用Base64编码一下,然后直接把Base64字符串存到数据库,读取的时候再把Base64字符串解码成二进制,再强转为结构类型

#4


引用 3 楼 starsunyzl 的回复:
方法很多,

比如直接把整个结构以二进制的形式保存为一个BLOB字段就可以了,就像把图片保存到BLOB字段一样,

或者把整个结构用Base64编码一下,然后直接把Base64字符串存到数据库,读取的时候再把Base64字符串解码成二进制,再强转为结构类型
请教,向表中插入blob字段时,字段类型怎么设置呀?比如我要插入的是整形,那就用%d即可,要插入的是字符串,就用%s,要是插入二进制数据到blob字段,该怎么设置类型呢?

#5


问题已解决,将结构体拷贝到一块char型内存中,然后当成字符串插入到数据库中就可以了。
读取时,强转成结构体类型。

#1


可能你的为该结构体,定义一个数据库表,每个结构体的作为该表的一个记录。然后把该记录号插入你要的表的字段去。就是2个表,关联起来。

#2


引用 1 楼 hztj2005 的回复:
可能你的为该结构体,定义一个数据库表,每个结构体的作为该表的一个记录。然后把该记录号插入你要的表的字段去。就是2个表,关联起来。
我明白你的意思。我现在是在别人的软件上做维护,要是新建一个表,或是新建多个字段来保存结构体中的数据的话,那样改动就大了。所以我现在想尝试着,可不可以将一个结构体保存到一个字段里。因为以前没做过这种,所以不知道这种方案是否具备可行性。

#3


方法很多,

比如直接把整个结构以二进制的形式保存为一个BLOB字段就可以了,就像把图片保存到BLOB字段一样,

或者把整个结构用Base64编码一下,然后直接把Base64字符串存到数据库,读取的时候再把Base64字符串解码成二进制,再强转为结构类型

#4


引用 3 楼 starsunyzl 的回复:
方法很多,

比如直接把整个结构以二进制的形式保存为一个BLOB字段就可以了,就像把图片保存到BLOB字段一样,

或者把整个结构用Base64编码一下,然后直接把Base64字符串存到数据库,读取的时候再把Base64字符串解码成二进制,再强转为结构类型
请教,向表中插入blob字段时,字段类型怎么设置呀?比如我要插入的是整形,那就用%d即可,要插入的是字符串,就用%s,要是插入二进制数据到blob字段,该怎么设置类型呢?

#5


问题已解决,将结构体拷贝到一块char型内存中,然后当成字符串插入到数据库中就可以了。
读取时,强转成结构体类型。