2012-01-01 67 views
3

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

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

会导出到一个文件,然后加载到数据库呢? [这个可能的导出格式列表](http://reference.wolfram.com/mathematica/ref/$ExportFormats.html)可能包含一些合适的东西。 – Verbeia 2012-01-01 23:19:27

+0

你知道'ExportString'吗?你可以用这个图像创建一个图像的文件内容,用它把它插入你的数据库。 'img = Image [{{1,0},{0,1}}]; ExportString [img,“PNG”]' – halirutan 2012-01-02 06:05:48

+0

我在过去为数据库应用程序所做的工作是将图像保存到目录并在数据库中引用它,而不是将其存储在目录中。如果您想在Web应用程序中使用图像,则仍然可以使用此方法执行此操作。 – 2012-01-02 06:20:31

回答

7

有以V 8.0.4文档页面SQLBinary给出所需要的步骤的实例。您导出picture到您选择的@halirutan的格式后@Verbeia建议,说

img=ExportString[picture, "PNG"]; 

你需要使用

byteData=SQLBinary[ToCharacterCode[img]]; 

假设列pictures(所得到的字符串原始的二进制数据转换与数据类型LONGVARBINARY, VARBINARYBINARY)家住,说,PICTABLE然后插入byteData到使用

pictures

SQLExecute[ ... ]中的等效原始SQL命令。