【问题标题】:insert data in a wordpress database在 wordpress 数据库中插入数据
【发布时间】:2016-11-22 09:45:55
【问题描述】:

我正在开发一个 WordPress 插件,它负责从外部 HTML 表单获取数据,然后将其插入数据库。我的表单代码是:

    <html>
   <body>
    <form action = "http://wp.istic.online/wp-content/plugins/news-apps/index.php" method = "POST">
         Name: <input type = "text" name = "name" />

         <input type = "submit" />
      </form>

   </body>
</html>

我的插件代码是:

    <?php

注册($_POST['name']); 注册($_POST['name']);

function register($name) {

    global $wpdb;
$wpdb->insert(
    'gcm_tokens',
    array(
        'token' => $name
    ),
    array(
        '%s'
    )
);

}

数据没有插入,但是当我尝试回显$name 变量时,它工作得很好。但是当我尝试在插入函数之后回显它时它不起作用。

有什么帮助吗?

【问题讨论】:

  • 你忘了调用注册函数
  • 我打电话给它,但我忘了写在我的问题中,对不起
  • 好的,那么请更新问题。但是不管怎样,你为什么要使用 wpdb 类而不是直接插入呢?这段代码真的和wordpress没什么关系吧?
  • 不,这是一个 wordpress 插件代码,这就是我使用 wpdb 类的原因

标签: php mysql wordpress post


【解决方案1】:

像下面这样使用 wp_nonce_field()

<form>
/*
Your code
*/
<input type="hidden" name="action" value="new_post" />
<?php wp_nonce_field( 'new-post' ); ?>

</form>

【讨论】:

  • 我的表单不是我的 WordPress 网站的一部分,它位于外部网页上
  • 可以包含 wp-blog-header 来使用 WordPress 功能
【解决方案2】:

首先,确保你有正确的 db 前缀,正确的表名,并且你可以正确获取 $POST 变量。

我通过调用 register('Test'); 尝试了您的代码并且有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 2014-03-24
    相关资源
    最近更新 更多