我尝试从本地磁盘(Windows 10)向我的RDS MySQL数据库插入一个blob。然而,我的查询没有插入blob。新行包含所有其他列,但blob为空。
INSERT INTO table VALUES('c1', LOAD_FILE('C:/testing.7z'));
以下是我尝试过的:
我如何上传文件?
编辑:我在我的本地数据库上尝试了同样的方法,但只对select@secure\u file\u priv;目录下的文件有效;。
之所以插入NULL
,是因为文件必须与服务器主机相关,而不是与发出查询的计算机相关。
查询是文本,不是函数,因此无法执行从计算机读取文件并将其传输到服务器的查询。
您可以使用熟悉的语言之一读取文件,并传输文件内容。
加载文件的文档:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_load-文件
重要摘录:
要使用此功能,文件必须位于服务器主机上,必须指定文件的完整路径名,并且必须具有文件权限。
根据文档,文件需要位于secure\u file\u priv
中指定的目录中。因此,我建议您创建一个目录c:/mysql uploads
,更新secure_file_priv
,指向那里并将文件放在该目录中。我引用这些文件:
如果文件不存在或由于不满足上述条件之一而无法读取,则函数将返回NULL。
使现代化
上述解决方案仅适用于文件位于数据库主机上的情况。由于您使用AWS RDS,因此无法访问本地文件系统,因此无论为secure\u file\u priv
设置了什么值,都无法将文件复制到数据库主机。恐怕您必须使用客户端应用程序,该应用程序将使用客户端方法(即JDBC)插入内容/blob。
您可以通过创建一个Connection
和一个准备语句
来实现这一点,使用setBinaryStream
将文件流加载到Blob中,然后调用执行更新
。完整的例子:
Connection conn = DriverManager.getConnection(url,username,password);
String updateSQL = "INSERT INTO table VALUES(?,?)"
PreparedStatement pstmt = conn.prepareStatement(updateSQL);
File file = new File(filename);
FileInputStream input = new FileInputStream(file);
pstmt.setString(1, "c1");
pstmt.setBinaryStream(2, input);
pstmt.executeUpdate();
问题内容: 我试图将图像存储在数据库中,由于某种原因,它似乎无法正常工作。这是我桌子的结构。 这是我的查询,它插入图像或至少多数民众赞成在什么: 如果我打印file_get_contents($ tmp_image)的值,那么屏幕上会有大量数据。但是,此值不会存储在数据库中,这就是我面临的问题。 问题答案: 问题 这会在PHP中创建一个名为的字符串。暂时不要使用MySQL,因为您尚未执行任何查询。
我想我在这段代码中遇到了一点问题:当我试图在数据库中插入值时,我遇到了一个错误。
问题内容: 我需要有关NodeJS和MySQL blob插入的一些帮助。 这是我正在使用的代码片段 查询将文件插入表中,我得到正确的文件大小,但是当我尝试检索文件并打开它(例如PDF文件)时,我收到一条消息,指出文件已损坏。 我必须对从文件读取的缓冲区做些错误。 问题答案: 尝试更换: 与: 您可能还想更改为,因为您只读取文件的前100个字节。如果这样,您可能会在中的前100个字节之后得到一堆额外
主要内容:基本语法,向表中的全部字段添加值,向表中指定字段添加值,使用 INSERT INTO…FROM 语句复制表数据数据库与表创建成功以后,需要向数据库的表中插入数据。在 MySQL 中可以使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。 基本语法 INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。 1) INSERT…VALUES语句 INSERT VALUES 的语法格式为: INSERT INTO <表名> [
问题内容: 从Actor中读取的文件:Zac Efron 传记:他出生于加利福尼亚州的圣路易斯·奥比斯波,并在阿罗约·格兰德附近长大。在几集《夏姆兰》(2004)的客串中,他以女孩疯狂的卡梅隆·贝尔的身份参加常规演出。埃夫隆还出演过许多飞行员,例如卡尔·兰克(Carl Laemke)的《大世界》(2003)(电视)和三重播放(2004)(TV)。 More_Bio:Efron于2006年6月毕业于
利用INSERT语句将数据插入表中 数据插入 用来插入(添加)行到数据库。 插入完整的行 插入行的一部分 插入某些查询结果 插入完整的行 指定表名和被插入到新行中的值 编写依赖与特定列次序的SQL语句,这样做有时会出错,但编写方便。 mysql> INSERT INTO Customers -> VALUES('1000000006', -> 'Toy Land', ->