如何将PHP代码存储在MySQL表中?

6
我正在构建一个小的php/mysql脚本,类似于wordpress博客,但只是一个仅供自己使用的小网站,用于存储PHP代码片段。我将拥有分类和页面,并使用JavaScript语法高亮器编写示例代码。我想把我的php代码片段保存到mysql数据库中,而不是保存在文件中。那么,最好的方法是将PHP保存到mysql中,并从mysql中取出以显示在页面上?
我的最终结果将类似于这样
alt text http://img2.pict.com/c1/c4/69/2516419/0/800/screenshot2b193.png

更新:

我不确定在将代码发送到mysql之前是否需要对其进行特殊处理,因为它包含各种不同类型的字符。


我不明白你的问题。你是在问如何从MySQL数据库中存储和检索数据吗? - Ian P
你知道PHP有一个内置的语法高亮器吗?http://php.net/highlight-string - Powerlord
6个回答

11

只需将其存储在text字段中,就像原样一样。除此之外没有更多的要求。


1
在mysql的text数据类型中,是否需要使用mysql_real_escape_string函数? - knoxgon
在将其插入数据库之前,您应该对其进行转义,以防止它引起错误。例如,php还会在文本(双引号或单引号)之间打印变量。例如 <?php $text = 'foo'; echo 'hello $foo bar'; ?> - user19690494

4

太好了,这正是我所想的。 - JasonDavis
在mysql的“text”数据类型中,是否需要使用“mysql_real_escape_string”函数? - knoxgon

2
您想要能够搜索 PHP 代码吗?如果是的话,我建议使用 MyISAM 表类型,因为它支持全文索引(InnoDB 不支持)。在创建 fulltext 索引时,您可以选择 char、varchar 和 text 列类型。我建议您选择 text 类型,因为其他类型可能无法容纳您的代码片段长度。
另外值得一提的是,在插入任何值之前,请确保正确转义所有的 PHP 代码(或者任何值)。最好的方法是使用参数化查询。

不是要打贬低的意思,但如果这是真的,那么在MySQL中只有MyISAM支持全文索引,这意味着你将失去事务、参照完整性等功能... - ChristopheD
@ChristopheD:非常正确。在InnoDB中看到“fulltext”支持会很不错。 - Asaph

0

试试这个:

mysql select ...

eval('?>' .  $row['phpcode'] . '<?php ');

0
除非我漏掉了问题的一部分,否则您应该可以将其存储为MySQL数据库中的TEXT字段而不会有安全问题。只需绝对确保清理代码片段,特别是PHP代码很可能包含会从SQL字符串中逃脱的字符。(如果您已经使用SQL框架,则该框架很可能已经为您完成此操作。)

0

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