我有一个如下所示的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查询简单地在数据库中插入此代码时,会发生mysql语法错误,因为代码因特殊字符而中断了sql查询。有没有办法做到这一点??
感谢。
答案 0 :(得分:3)
使用mysql_real_escape_string()转义特殊字符。你最好远离mysql_ *函数并开始使用PDO或mysqli_*。
修改强> 如注释中所述,请确保将代码放在字符串中,并且DB字段是正确的数据类型。另外,请确保在整个字符串(或代码)上使用mysql_real_escape_string()(如果您坚持使用mysql_ *)。
答案 1 :(得分:2)
<强> EDITED 强> 与此答案的先前版本相比,强调了PDO,因为PDO比其他选项更安全,并且在使用PHP和MySQL时可以使用它。
答案 2 :(得分:0)
您将需要使用mysql_real_escape_string()来转义php代码,以便在插入时不会抛出错误。然后,如果要执行,则在语句上运行eval()。如果你有一个混合的html和php存储在数据库中,你会像这样调用eval
eval('?>'.$dbresult.'<?php');
请确保在数据库结果