[英]How to insert a php code snippet in mysql database
我有一个如下的php代码片段:
function is_ancestor_of( $page_name = null, $post ) {
if(is_null($page_name))
return false;
// does it have a parent?
if (!isset( $post->post_parent ) OR $post->post_parent <= 0 )
return false;
//Get parent page
$parent = wp_get_single_post($post->post_parent);
if ( $parent->post_name == $page_name ){
echo $parent->post_name.' - '.$page_name;
return true;
} else {
is_ancestor_of( $page_name, $parent );
}
}
我只想将整个代码插入mysql数据库表中,然后再次在页面上以相同的格式重新检索它。 当我仅使用INSERT INTO查询将此代码插入数据库时,由于代码因特殊字符而中断了sql查询,因此会发生mysql语法错误。 有什么办法吗?
谢谢。
使用mysql_real_escape_string()转义特殊字符。 不过,最好还是远离mysql_ *函数,而开始使用PDO或mysqli_ * 。
编辑如注释中所述,请确保将代码放置为字符串,并且DB字段是正确的数据类型。 另外,请确保对整个字符串(或代码)使用mysql_real_escape_string()(如果您坚持使用mysql_ *)。
是的,您可以这样做。 多种方式:
EDITED强调PDO相比以前的版本这个答案为PDO是远远超过其他选项更安全,也给了很多更可与PHP和MySQL工作时使用。
您将需要使用mysql_real_escape_string()来转义php代码,以便在插入时不会引发错误。 然后,如果要执行该语句,请对该语句运行eval()。 如果您在数据库中存储了混合的html和php,则可以这样调用eval。
eval('?>'.$dbresult.'<?php');
只要确保您在数据库结果上加上stripslashes()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.