Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql数据库中插入php代码段_Php_Mysql_Html Entities - Fatal编程技术网

如何在mysql数据库中插入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

我有一个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 );
}
}
函数是($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——实际上这是最好的选择。在PHP手册中学习这个主题,因为这比在PHP中保护MySQL查询不被破坏更有帮助
  • addslashes()-添加斜线以转义字符。这肯定不会破坏您的MySQL查询
  • mysql\u real\u escape\u string()
  • mysql_escape_string()
  • 已编辑
    强调PDO与此答案的前一版本相比,因为PDO比其他选项安全得多,并且在使用PHP和MySQL时可以使用更多的选项。

    是的,您可以这样做。多种方式:

  • PDO——实际上这是最好的选择。在PHP手册中学习这个主题,因为这比在PHP中保护MySQL查询不被破坏更有帮助
  • addslashes()-添加斜线以转义字符。这肯定不会破坏您的MySQL查询
  • mysql\u real\u escape\u string()
  • mysql_escape_string()
  • 已编辑
    强调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绝对应该是这样做的。是的,它很烂,但是从数据库执行代码的唯一方法之一是,它很烂,但是从数据库执行代码的唯一方法之一