将数据从wordpress插入mysql

时间:2016-12-27 11:01:36

标签: php mysql wordpress

我是wordpress的新手。我在其中一个页面中有一个表单:

 <form action="" method="post">
 Firstname: <input type="text" name="fname" /><br><br>
 Lastname: <input type="text" name="lname" /><br><br> 
  <input type="submit" />
  </form>

现在我需要将文本框的值存储到mysql数据库中。

我是否需要创建一个新的php文件?如果是的话那么我在哪里放置它?什么是我的PHP代码插入?

5 个答案:

答案 0 :(得分:1)

<强> HTML

<form action="" method="post">
   Firstname: <input type="text" name="fname" /><br><br>
   Lastname: <input type="text" name="lname" /><br><br> 
   <input type="submit" name="submit" />
</form>

PHP代码

if(isset($_POST['submit'])){

    // use global variable for database opertation
        global $wpdb;
    // assign value that pass from form 
        $fname  = $_POST['fname'];
        $lname= $_POST['lname'];
    // call insert method of wpdb class 
    $wpdb->insert('table_name', array(
        'fname' => $fname,
        'lname ' => $lname // ... and so on
    ));
}

有关wordpress中数据库操作的更多详细信息,请参阅链接:

https://codex.wordpress.org/Class_Reference/wpdb

答案 1 :(得分:1)

步骤1:如果您使用外部文件结构,则必须加载wp-configuration。

function navigate(m,f){
  var c = {x: 0, y: 0},
      d = { left: c => (c.x = (c.x + f[c.y].length - 1 % f[c.y].length) % f[c.y].length,c),
           right: c => (c.x = (c.x + f[c.y].length + 1 % f[c.y].length) % f[c.y].length,c),
              up: c => (c.y = (c.y + f.length - 1 % f.length) % f.length,c),
            down: c => (c.y = (c.y + f.length + 1 % f.length) % f.length,c)
          };
  return m.reduce((p,n) => (d[n](c),p.concat(f[c.y][c.x])),[]);
}

var fighters = [["Ryu", "E.Honda", "Blanka", "Guile", "Balrog", "Vega"],
                ["Ken", "Chun Li", "Zangief", "Dhalsim", "Sagat", "M.Bison"]
               ],
       moves = ['right', 'down', 'left', 'left', 'left', 'left', 'right'];
console.log(navigate(moves,fighters));

第2步:创建带或不带参数的函数insertuser()。

require_once('../../../wp-load.php');

步骤3:如果提交则检查表格是否已汇总,然后处理变量以进行数据库操作。

function insertuser(){
//Write code here
}

步骤4:如果表单汇总使用$ wpdp对象进行数据库操作。你可以在这里找到更多细节

if(isset($_POST['submit'])){

}

https://codex.wordpress.org/Class_Reference/wpdb

第5步:从$ _POST获取值并初始化为变量并运行插入函数。

global $wpdb; // Global database variable 

完整源代码

  $fname=$_POST['fname'];
  $lname=$_POST['lname'];;
  $table_name = $wpdb->prefix . "newsletter";
  $wpdb->insert($table_name, array('lname' => $lname, 'lname' => $lname) ); 

答案 2 :(得分:0)

好的,你的问题解释了你有多新...... !!

不用担心,让我告诉你一些事情,你可以在同一页面使用PHP插入你的数据,或者也可以添加一个新的页面。 HTML表单操作属性决定数据的发送位置,如果为空,则将其提交到同一页面。

您只需首先尝试提交到同一页面,然后在MySQL中插入数据,您需要先连接MySQL并插入查询。

LIKE:

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

Above code taken from - $servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

以上代码取自 - http://www.w3schools.com/php/php_mysql_insert.asp

由于

答案 3 :(得分:0)

// in your template file add this code
<? php
if (isset($_REQUEST['register'])) {
    do_action('form_data');
} ?>
< form method = "post" >
    Firstname: < input type = "text"
name = "fname" / > < br > < br >
    Lastname: < input type = "text"
name = "lname" / > < br > < br >
    < input type = "submit"
class = "button"
name = "register"
value = "Submit" >
    < /form>

// and add this in function.php
<? php

function form_data_func() {
    $fname = $_REQUEST['fname'];
    $lname = $_REQUEST['lname'];
    $userdata = array(
        'first_name' => $fname,
        'last_name' => $lname,
    );
    $user_id = wp_insert_user($userdata);
}
add_action('form_data', 'form_data_func'); ?>

// developer.wordpress.org/reference/functions/wp_create_user请参阅此链接,了解我向您展示了如何执行插入功能的参数

答案 4 :(得分:0)

在Wordpress中,您需要使用“操作”将数据提交到后端。

提交直接表格:

  • 使用挂钩

    // 'action_name' is your form_name or any, but specify uniquely.
    
    // For Authorized User.
    add_action( 'admin_post_nopriv_action_name', 'call_back_function` );
    
    // For Guest User.
    add_action( 'admin_post_action_name', 'call_back_function` );
    
  • 格式

    您必须在表单内指定此内容。

    <form> ......
    <input type="hidden" name="action" value="action_name">
    ...... </form>
    

    这告诉wordpress将您的表单与相应的回拨功能

  • 相关联

对于Ajax表单提交:

  • 使用挂钩

    add_action('wp_ajax_contact_form', 'action_name');
    add_action('wp_ajax_nopriv_contact_form', 'action_name');
    
  • 列表项

    您必须添加另一项名为“操作

    的项目

    <强>离。

     $.ajax({ 
     data: {action: 'action_name'},
     type: 'post',
     url: your_url,
     success: function(data) {
        // On Success
    }
    

    });

这些都是在wordpress中提交表单和管理数据的方法。

回拨功能中,您可以在 $ _ GET $ _ POST $ _ REQUEST 中接收数据接收数据。

之后,插入数据库有多个选项,

  • 您可以使用Post来自定义并遵循wordpress的原生。 研究,如何create post
  • 如果您管理的数据较少,则可以选择add option

  • 如果您需要,除此之外,您需要创建新表并使用wordpress实例跟踪核心数据库管理。然后研究这些WPDBTable Creation

    对Wordpress感到高兴...  谢谢!