2012-08-15 144 views
1

我正在与MySQL数据库的C#项目。我有一个日志文件,我想将这个文件存储在数据库中。保存文件到MySQL数据库

我想将实际的文件保存到数据库中,但是我所看到的是您必须将其编码为字符串或将字节写入字符串并将其放入数据库,这是它如何工作来存储该文件,我认为你可以给命令的文件路径,它将它存储在数据库中,而不需要我在软件中执行所有编码。

如果这有什么不同,它将需要从PHP中重新检索,但我猜测这应该不重要。

回答

1

是的,你必须将它编码为字符串或字节来存储文件。另一种方法是存储日志文件的位置,而不是将日志文件保存在磁盘上的某处。

0

您的程序将不得不解析日志文件并将其转换为SQL查询。

0

如果要将文件的内容存储在数据库中,那么您需要对其进行编码或将字节存储在表列中。这是没有办法的。

如果你想简单地存储文件的路径,那么你所需要做的就是将路径作为参数传递给你的文件系统,但是当你在文件系统中移动文件时,你的记录将是无效的,明显。

Link有关与哪种方法最好有关的问题:将文件的内容存储在数据库中或简单地存储在文件系统中的路径。

0

为什么不使用Log4Net?它能够自动登录到数据库。看看https://logging.apache.org/log4net/release/config-examples.html关于如何连接数据库的细节log4net的

orignal decayed link: http://logging.apache.org/log4net/release/sdk/log4net.Appender.AdoNetAppender.html

+0

不幸的是,您的链接已经腐烂。 – JohnP 2017-01-26 16:12:51

+0

@JohnP谢谢 - 我添加了一个链接到配置示例,不幸的是MySQL并不直接链接到那里,但这些示例提供了足够的信息来弄清楚它 – 2017-01-26 16:55:37

1

这可能听起来有点可笑,但你应该看看LOAD_FILE function

下面是MySQL文档

的例子
mysql> UPDATE t 
     SET blob_col=LOAD_FILE('/tmp/picture') 
     WHERE id=1; 

只要日志文件小到足以放入一个BLOB,那么这就是你唯一的机会吧

如果日志文件太大,请将日志文件归档到某处并保存文件位置