创建表单以将数据提交到wordpress数据库

时间:2014-10-17 19:16:55

标签: php mysql database wordpress

我一直试图想出一些方法来获取我在wordpress页面上制作的html表单,以获取输入的信息并将其发送到wordpress数据库中的自定义表格。我试过调用一个自定义的PHP脚本并在页面本身编写代码,我不知道如何让它工作。我想要弄清楚这一点我疯了,我即将放弃。任何关于从哪里开始寻找的建议,足够我一直在寻找一周,这将是伟大的。

我已经尝试过使用mysqli_connection但是我一直在解决连接的问题(mysite.com,user,pass,db);我得到另一个错误“无法连接”user@anotherunknownsite.com“我有一个共享的IP所以我想知道它是否连接到这个其他网站,我的代码中没有参考。我厌倦了使用本地主机而不是我的网站但什么都行不通。

此代码尝试从数据库中获取一些数据,但没有任何反应,与b4相同,其中mysite.com显示错误,无法连接到user@randomsite.com并且localhost无效。

 <?php
    $con=mysqli_connect("mysite.com","user","pass","db");
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $result = mysqli_query($con,"SELECT * FROM Liquor_Type");

    while($row = mysqli_fetch_array($result)) {
      echo $row['lq_name'] . " " . $row['description'];
      echo "<br>";
    }

    mysqli_close($con);
    ?>

我的表格

<form  action = "setLQType.php" method="post">
Add a New Liquor Type</br></br>
<p>Name: <input type="text" name="name"/></p>
<p>Description <input type="text" name="description"/></p>
----------------------------------------------
<input type="submit" name="Submit"/>
</form>
</br>

setLQType php文件,位于主要wordpress词典中。它将到达文件但什么都不做。

<?php
$con=mysqli_connect("mysite.com","user","pass","db_name");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name = mysqli_real_escape_string($con, $_POST['name']);
$description = mysqli_real_escape_string($con, $_POST['description']);

$sql="INSERT INTO Liquor_Type(lq_name, description)
VALUES ('$name ', '$description)";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);
?>

在website.com/setLiquorType.php中更新了插入页面... setLiquorType.php

<?php 
$global $wpdb;
$name = $_POST['name'];
$description = $_POST['description'];
$table_name = $wpdb->prefix . "wp_Liquor_Type";
$wpdb->insert($table_name, array(
                            'lq_name' => $name,
                            'description' => $description
                            ));
?>

2 个答案:

答案 0 :(得分:1)

发布方式如下:

global $wpdb;

$name = sanitize_text_field(  $_POST['name']);
$lq_name = sanitize_text_field( $_POST['lq_name']);
$description = $_POST['description'];
$table_name = $wpdb->prefix . "Liquor_Type";
$wpdb->insert( $table_name, array(
    'liquor_name' => $liquor_name,
    'description' => $description
) );

您的mysql连接在var $ wpdb

中可用
global $wpdb; 

                    $sql="SELECT * FROM Liquor_Type";

                    $row = $wpdb->get_results($sql);                   
                    foreach ($row as $data)
                    {
                     echo $data->lq_name. " " . $data->description;
                       echo "<br>";
                    }

答案 1 :(得分:0)

我建议使用WP函数进行工作。您需要全局对象p4d -jr才能使用它们。对于插入,请尝试使用$wpdb

您可以定义一个放在$wpdb->insert($table, $array)中的简码或为此制作一个小插件。在同一功能中,您可以绘制表单并尝试从中获取数据(我想我更喜欢先获取数据,最后绘制表单)

这里有一个有效的代码:

functions.php