我正在处理 ac# 项目,我将数据库中的文件存储到一个中等 blob 字段中,数据存储得很好,当我在 MySQL Workbench 中查看它时,文件中的每一行都显示在数据库中它自己的行上,即相同的格式。
但是,当我从 PHP 中检索信息时,它似乎删除了新行,并且所有内容都在同一行上。
下面是我用来将文件存储在数据库中的代码。
using (ConnectDb db = new ConnectDb(appSettings))
{
FileStream fileStream = new FileStream(logFile, FileMode.Open, FileAccess.Read);
long fileLength = fileStream.Length;
byte[] myData = new byte[fileLength];
fileStream.Read(myData, 0, System.Convert.ToInt32(fileLength));
fileStream.Close();
string fileSize = Common.convertBytesToMb(fileLength);
string query = "INSERT INTO logfile_history (LogFile, FileSize) VALUES (@file, @size)";
using (MySqlCommand cmd = new MySqlCommand(query, db.conn))
{
cmd.Parameters.AddWithValue("@file", myData);
cmd.Parameters.AddWithValue("@size", fileSize);
cmd.ExecuteNonQuery();
}
}
当我从 PHP 获取文件时,新行被删除,下面是我用来从 PHP 数据库中的 Medium Blob 获取数据的代码。
$query = "SELECT * FROM logfile_history WHERE id='$id'";
$result = mysql_query($query);
if ($result)
{
echo "<table class=\"overview\">";
echo "<tr>";
echo "<th>Date</th>";
echo "<th>Class/Method</th>";
echo "<th>Message</th>";
echo "</tr>";
while ($myrow = mysql_fetch_array($result))
{
$logContent = $myrow['LogFile'];
$splitContent = explode("\t", $logContent);
$i = 0;
$colCount = 0;
while ($i < count($splitContent))
{
if ($colCount == 0)
{
echo "<tr>";
}
echo "<td>" . $splitContent[$i] . "</td>";
if ($colCount == 2)
{
echo "</tr>";
$colCount = 0;
}
$i++;
$colCount++;
}
}
echo "</table>";
我正在拆分日志文件中的行,因为它是制表符分隔的,所以我按制表符拆分它以将其放入表中,但这是在我意识到所有内容都在同一行之前。
从数据库中检索数据时如何保留换行符。
感谢您的任何帮助,您可以提供。