程序中怎么把struct结构体的数据存入mysql数据库的表中

2025-05-22 12:36:50
推荐回答(2个)
回答1:

你的程序中:in函数中用"w+"属性打开文件,文件被新建或清除内容,然后又用fread读取,这个矛盾,应用"r"属性打开读取。
用文本方式保存数据会有许多问题,比如你用fprintf(fp,"%d%s%s%lf%lf%lf%lf",comm[m].num,comm[m].name,comm[m].chang,comm[m].price,comm[m].count,comm[m].in,comm[m].total);}写数据时,数据全都接在一起,以后你怎么区分读入那个连续的字符串和那些double型数据呢?比如字符串是"aaa"和"bbb",写到文件中就是"aaabbb",浮点数是123.456和789.012,写到文件中是123.456789.012,这种情况建议加分隔符如"%d %s %s %lf %lf %lf %lf",但又要求你字符串中不允许出现分隔符字符,否则会影响以后的数据读取。
一般情况下是这样做的:程序采用二进制数据格式而不用文本格式
打开文件写的属性是"wb+"或"wb";读取时属性是"rb";
写整个记录(假设struct MMM comm[1024];): fwrite(comm[m],1,sizeof(struct MMM),fp);
读整个记录: fread(comm[m],1,sizeof(struct MMM),fp);
这样就可以不用一个一个数据单独处理了一次可读写整个结构的数据。

回答2:

序列化后存入就行了,取出再反序列就可以了。