如何在数据库中保存html和文本?

时间:2016-11-05 作者:wassereimer

我有两个字段。第一个用于纯文本(但带有特殊字符),第二个用于html内容(使用wp\\U编辑器)。这两种都是以后需要的phpmailer.

<textarea style="width:100%;height:200px;" name="doi-altbody"><?php echo $epn_doi_altbody; ?></textarea>

wp_editor( $epn_doi_body, \'doi-body\', array( \'editor_height\' => \'300px\' ) );
1)如何在提交表单后正确保护它们,然后将它们保存在数据库中,保存到已经存在的自定义表中?(esc\\u attr,sanitize\\u text\\u field…)

2) 当我想从数据库中输出精确的原始类型的内容时:我该如何做到这一点?(wpautop…)

在过去的几天里,我尝试了一些事情。但它从来没有像我需要的那样起作用。

2 个回复
最合适的回答,由SO网友:wassereimer 整理而成

<textarea style="width:100%;height:200px;" name="doi-altbody"><?php echo $epn_doi_altbody; ?></textarea>

wp_editor( $epn_doi_body, \'doi-body\', array( \'editor_height\' => \'300px\' ) );
要获得保存到数据库的相同结果,必须修改输出。

对于文本区域:

wp_specialchars_decode( $epn_doi_altbody, $quote_style = ENT_QUOTES )
对于wp\\U编辑器:

wpautop( $epn_doi_body );

SO网友:Ismail

只需使用wpdb 插入和更新API,无需根据文档进行转义或消毒,只需原始数据即可Data: (数组)要替换的数据(列=>值对)。$数据列和$数据值都应为“原始”(都不应为SQL转义)。

类似于:

    $wpdb->insert(
      $wpdb->prefix . "myTable",
      array(
        "doiBody" => $_POST[\'doi-body\']
      ),
      array( "%s" )
    );
如果要输出到wp\\U编辑器文本区域,则无需使用wpautop,只需esc_attr( $output ) 我相信这就足够了

相关推荐

$wpdb->get_row返回什么?

由于插件中的调试和错误查找,我有一个简短的问题。$wpdb->;如果没有结果,返回get\\u row()?文件说明:(array|object|null|void) Database query result in format specified by $output or null on failure. 但当查看源代码时,它似乎返回了;null“;。。。如果您能快速提供帮助,我将不胜感激,我一直认为它会返回一个空数组,但我可能弄错了!