如何在mysql数据库中插入php代码段
我有一个php代码片段,如下所示:如何在mysql数据库中插入php代码段,php,mysql,html-entities,Php,Mysql,Html Entities,我有一个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
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 );
}
}
函数是($page\u name=null,$post)的祖先{
如果(为空($page\u name))
返回false;
//它有父母吗?
如果(!isset($post->post\u parent)或$post->post\u parent post\u parent);
如果($parent->post\u name==$page\u name){
echo$parent->post_name.'-'.$page_name;
返回true;
}否则{
是($page\u name,$parent)的祖先;
}
}
我只想在mysql数据库表中插入整个代码,然后在页面上再次使用相同的格式重试。当我简单地使用insert INTO query将此代码插入数据库时,就会出现mysql语法错误,因为代码由于特殊字符而中断sql查询。有没有办法做到这一点
谢谢。使用转义特殊字符。不过,您最好离开mysql_*函数,开始使用or 编辑
如注释中所述,请确保将代码作为字符串放置,并且DB字段是正确的数据类型。另外,确保对整个字符串(或代码)使用mysql\u real\u escape\u string()(如果坚持使用mysql\u*)。使用转义特殊字符。不过,您最好离开mysql_*函数,开始使用or 编辑
如注释中所述,请确保将代码作为字符串放置,并且DB字段是正确的数据类型。另外,确保对整个字符串(或代码)使用mysql\u real\u escape\u string()(如果您坚持使用mysql\u*)。是的,您可以这样做。多种方式:
强调PDO与此答案的前一版本相比,因为PDO比其他选项安全得多,并且在使用PHP和MySQL时可以使用更多的选项。是的,您可以这样做。多种方式:
强调PDO与本答案的前一个版本相比更安全,因为PDO比其他选项安全得多,并且在使用PHP和MySQL时可以使用更多的选项。您需要使用MySQL\u real\u escape\u string()来转义PHP代码,以便在插入时不会抛出错误。然后,如果希望执行该语句,可以对其运行eval()。如果在数据库中存储了混合的html和php,那么可以像这样调用eval
eval('?>'.$dbresult.'<?php');
eval(“?>”.$dbresult.您需要使用mysql\u real\u escape\u string()对php代码进行转义,以便在插入时不会抛出错误。然后,如果希望执行该语句,请对其运行eval()。如果数据库中存储了混合的html和php,则可以这样调用eval
eval('?>'.$dbresult.'<?php');
eval(“?>”.$dbresult.”几个问题:1.您是否使用PDO中的预处理语句?2.您尝试插入的代码是否被视为字符串?3.列的数据类型是什么(您尝试插入此代码段的位置;应该插入到文本类型或类似类型中)?4.我不会问您为什么要尝试将代码段添加到DB行。我只会假设这是一个合理的原因,比如博客发布代码示例:)几个问题:1.您是否使用PDO中的准备语句?2.您尝试插入的代码是否被视为字符串?3.列的数据类型是什么(您尝试插入此代码段的位置;应该插入到文本类型或类似类型中)?4.我不会问您为什么尝试将代码段添加到DB行。我只会假设这是一个合理的原因,如博客发布代码示例:)不要使用addslashes
为MySQL查询转义字符串。你甚至不应该使用MySQL\u real\u escape\u string
或任何MySQL
模块函数。使用mysqli
或pdo
。但绝对不要使用addslashes
。是的,我自己使用pdo,但这些都是我一开始就是这么做的。但是,是的,PDO绝对应该是这样做的。不要使用addslashes
为MySQL查询转义字符串。你甚至不应该使用MySQL\u real\u escape\u string
或任何MySQL
模块函数。使用mysqli
或PDO
,但一定要这样做不要使用addslashes
。是的,我自己也使用PDO,但这些都是我开始使用的。但是,是的,PDO绝对应该是这样做的。是的,它很烂,但是从数据库执行代码的唯一方法之一是,它很烂,但是从数据库执行代码的唯一方法之一