1

我正在使用 MySQL 数据库开发 ac# 项目。我有一个日志文件,我想将此文件存储在数据库中。

我想将实际文件保存到数据库中,但是我所看到的是您必须将其编码为字符串或将字节写入字符串并将其放入数据库中,这就是存储文件的工作方式,我以为您可以只给命令提供文件路径并将其存储在数据库中,而无需我在软件中进行所有编码。

如果这有什么不同,则需要再次从 PHP 中检索它,但我猜这应该无关紧要。

4

5 回答 5

1

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

于 2012-08-15T19:50:42.723 回答
1

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

这是 MySQL 文档的示例

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

只要日志文件足够小以适合 BLOB,那么这就是您唯一的机会

如果日志文件太大,只需将日志文件归档到某个地方并保存文件位置即可

于 2012-08-15T20:15:46.860 回答
0

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

于 2012-08-15T19:49:39.053 回答
0

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

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

链接到关于哪种方法最好的一些相关问题:将文件的内容存储在数据库中或只是文件系统中的路径。

于 2012-08-15T19:50:15.797 回答
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

于 2012-08-15T19:53:19.987 回答