2010-04-27 122 views
0

我将MySQL数据导出为html时遇到了一些问题。问题是,在一个字段中,我有这样的值:<a href="http://google.com">Google</a>当我以html格式导出表格时,为这个字段生成的html表格包含:&lt;a href=&quot;http://google.com&quot;&gt;Google&lt;/a&gt;这不是一个有效的html链接。有没有办法导出没有MySQL的表来转换<>字符?MySQL表格导出为HTML

即时消息不使用任何代码。我只使用mysql命令:mysql -H "select ...."并指定输出文件。

谢谢!

回答

1
when i export the table in html format the generated html table for this fields contains: 
&lt;a href=&quot;http://google.com&quot;&gt;Google&lt;/a&gt; 

这是奇怪的,我不明白这种行为(在5.1.34):

$ mysql -H -e "select 'a&b<c>d'"; 
<TABLE BORDER=1><TR><TH>a&b<c>d</TH></TR><TR><TD>a&b<c>d</TD></TR></TABLE> 

您逃逸报价的行为!正如你可以从我的例子看到的那样,否则你会冒着格格不入的HTML的风险。例如。一个值为</table>会破坏整个输出。 (a)需要编写一些代码来做到这一点,和(b)你将不得不成为一个或多个列的原始HTML内容的输出格式,然后(b)你将不得不编写确保数据库中的内容是已知安全的HTML,没有可能会破坏表格的恶意字符串或恶意JavaScript。

-H选项mysql不足以完成任务,根据我们的不同结果判断看起来相当不可靠!你需要选择一种脚本语言来绑定MySQL并手动输出行。

0

出口目的是出口数据,而不是提供他们的视觉解释。 如果你想拥有有效的链接,你必须使用php或任何脚本语言。顺便说一下,即使你可以用技巧来做到这一点,你也不应该这样做。