使用PHP从MySQL数据库读取BLOB数据

4
我在我的php代码中执行以下操作:
$q="SELECT * FROM {$table} where x;
$link = mysqli_connect("localhost", "test", "test","mytable");
$res = mysqli_query($link,$q);
 if($res)
   {
       $row = mysqli_fetch_assoc($res);
       header("Content-type: text/xml");
       header("Content-Disposition: attachment; filename=$name");
       echo $row['blob'];
   }

我看到我上传到mysql的数据(xml文件)没有任何前导空格,但当我运行上面的代码时,会出现3个新行和一个空格,并且该文件不再是格式良好的xml。有什么想法为什么无法从表中读取确切内容?


XML解析错误:XML或文本声明不在实体的开头 行号3,列2: - icedek
@Chris 我查看了MySQL数据库,那里没有新的换行符。很有趣的是,当我使用php读取它们时,我会得到这些换行符。 - icedek
本来想建议使用trim函数,但是看到rkstar的建议了。 - Chris
@bigman 即使将数据类型从“blob”更改为“text”,我仍然看到相同的问题。 - icedek
可能是使用PHP PDO从MySQL读取BLOB的重复问题。 - jww
显示剩余6条评论
2个回答

2
找到问题了,是一个愚蠢的错误。我的php开始标签在第3行第2列。
> <?php

这使得“echo”从同一行开始(第3行第2列)。 这就是“echo”的正常工作方式吗?


0

你应该调查一下多余的换行符是从哪里来的,但你可以通过运行以下命令来解决问题:

trim($row['blob']);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接