如何在sqlite数据库(表)中插入图像?

时间:2018-10-20 21:59:37

标签: database sqlite

我想它对MySQL有效,但是我找不到关于SQlite的任何信息。

基本上,我有一个名为“ CUSTOMER”的表。 所以我创建了一个这样的属性:

.. 图像BLOB ..之后,我的插入语句如下:

插入客户(1,LOAD_FILE(D:/Project/Images/X.jpg));

但是,LOAD_FILE标记不起作用,我不知道我们如何插入图像或可以这样做。

3 个答案:

答案 0 :(得分:1)

您可以将图像存储为 BLOB ,但是您必须使用类似以下内容的图像将其作为一系列字节插入:-

INSERT INTO CUSTOMER (image_column, other_column) VALUES(x'0001020304........','data for the first other column');

因此,您需要将文件转换为十六进制字符串以保存它。

但是,实际上不建议存储图像,而是存储图像的路径,然后在要显示/使用图像时检索文件。

说,对于较小的图像(例如100K),SQLite实际上可以更高效35% Faster Than The Filesystem

答案 1 :(得分:0)

如果您使用sqlite3 Shell,则相关功能为readfile()

如果要通过自己的程序执行此操作,则必须将文件读取为字节数组,并将其作为blob绑定到插入中所需的列。具体的详细信息取决于语言和sqlite绑定,但您不必将其转换为Blob文字字符串并将其直接嵌入到语句中。

答案 2 :(得分:0)

您必须使用cmd命令行(Windows)插入附件。 sqllitespy(1.9.13版)不支持从程序命令行执行命令。

您应该先使用CMD访问数据库,然后再访问;

更新(表)集(列)= readfile(“文件存储目录”'|| num ||´.jpg);