5
  1. 嗨,我是 SQL 新手,我想将图像存储在数据库中。我已经创建了一个具有 blob 数据类型的列,并尝试执行此处给出的以下语句
INSERT INTO `abc`
    (`img`)
    SELECT  
        BulkColumn FROM OPENROWSET(
            Bulk 'C:\Users\adity\Desktop\New folder\a.png', SINGLE_BLOB) AS BLOB

这给出了错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以C:\Users\name\Desktop\New folder\a.png在第 4 行的 '( Bulk , SINGLE_BLOB) AS BLOB'附近使用正确的语法

我还尝试了此处给出的以下代码

insert into table `abc`(`img`) values('C:\Users\name\Desktop\New folder\an.jpg') where id=1;

这给出了错误

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'table abc( img) values('C:\Users\adity\Desktop\New folder\an.jpg') where id=1'附近使用正确的语法

所以请建议我如何在不使用 php 等的情况下将图像存储在 blob 中,而只需使用简单的 sql 插入语句。我正在为我的数据库使用 wamp 服务器。

  1. 我知道我应该对图像使用文件系统而不是使用数据库。但是文件系统实际上是什么意思。它是指一个文件或图像托管站点,其地址将存储在数据库中。
4

3 回答 3

8

我认为该命令是一种 MSSQL 语法。试试这个命令:

INSERT INTO `abc`
(`img`)
VALUES
(LOAD_FILE('C:/Users/adity/Desktop/New folder/a.png'))

此命令将图像存储为 BLOB

于 2015-12-17T07:25:35.903 回答
3

通过 Mysql 工作台,使用以下步骤将图像加载到数据库中非常容易。

  1. 右键单击表中 (blob) 列的值,然后选择“从文件中加载值”。
  2. 然后我们可以提供系统中的图像路径。
  3. 然后将其转换为字节数组并自动存储。
  4. 最后保存表的更改。
于 2018-03-23T11:10:47.440 回答
0

下面对我有用,

但是,我能够通过fileName.jpg首先将图像()文件移动到下面的文件夹(在我的情况下)来完成它C:\ProgramData\MySQL\MySQL Server 5.7\Uploads,然后我执行下面的命令,它对我有用,

INSERT INTO `abc`
(`img`)
VALUES
(LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/an.jpg'));

希望这可以帮助。

于 2018-10-01T02:59:33.003 回答