从Mathematica将图表作为blob插入到mysql中

3

在php中,您可以将图片作为blob数据类型插入到数据库中。我想将数据的图表以blob数据类型放入数据库中,这样我就可以在网页上使用php重复使用这些数据。
例如:

Needs["DatabaseLink`"];
conn=OpenSQLConnection["myDB"];
picture=Plot[Sin[x], {x,0,2Pi}];
SQLExecute[conn, "INSERT INTO pictures VALUES ('"<>picture<>"')"]

导出到文件然后加载到数据库中可以吗?这个可能的导出格式列表可能包含适合的选项。 - Verbeia
你知道ExportString吗?使用它可以创建图像的文件内容并将其插入到数据库中。例如:img = Image[{{1, 0}, {0, 1}}]; ExportString[img, "PNG"] - halirutan
我过去在数据库应用程序中所做的是将图像保存到目录中,并在数据库中引用它,而不是将其存储在其中。如果您想在Web应用程序中使用图像,则仍然可以使用此方法。 - Mike Honeychurch
1个回答

7
在V 8.0.4文档页面中有一个示例SQLBinary,其中提供了所需的步骤。在您按照@halirutan和@Verbeia的建议将picture导出为所选格式后,执行以下操作:
img=ExportString[picture, "PNG"]; 

您需要使用以下方法将结果字符串转换为原始二进制数据:
byteData=SQLBinary[ToCharacterCode[img]];

假设列 pictures (具有数据类型 LONGVARBINARY,VARBINARYBINARY)存在于例如 PICTABLE 中,则使用以下方法将 byteData 插入到 pictures 列中:
SQLInsert[conn, "PICTABLE", {"pictures"}, {byteData}];

SQLExecute[...]中使用等效的原始SQL命令或语句。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接