使用 html 表单将数据插入到 wordpress 表中
Posted
技术标签:
【中文标题】使用 html 表单将数据插入到 wordpress 表中【英文标题】:Inserting data into wordpress table using a html form 【发布时间】:2018-10-31 14:47:53 【问题描述】:我尝试了几个小时来解决我认为是一个简单的问题,但仍然没有进一步......
下面是我将 3 个字段输入到名为“std”的 wordpress 自定义表中的代码。不知道是连接问题还是我的代码错了!当我单击提交时,我只是收到“数据库插入失败”消息,但我不知道为什么。
<?php
/*
Template Name:ProRata
*/
//get_header();
if($_POST['Submit'])
global $wpdb;
require_once('wp-config.php');
$name=$POST['aname'];
$roll=$POST['aroll'];
$dept=$POST['adept'];
$tablename = $wpdb->prefix.'std';
if($wpdb->insert(
$tablename,
array(
'name'=> $name,
'roll'=> $roll,
'dept'=> $dept
)
) ==false) wp_die('databse insertion failed');
else echo 'Database insertion completed</p>';
?>
<?php
else // if form has not yet been submitted
?>
<br>
<form action="" method="post">
<label>Leave: Type of leave </label>
<label> aname </label>
<input type="text" name="aname"><br><br>
<label> Leave: Start Date </label>
<input type="text" name="aroll"><br><br>
<label> Leave: End Date </label>
<input type="text" name="adept"><br><br>
<input type="submit" name="Submit"><br>
</form>
<?php
?>
【问题讨论】:
您不需要包含wp-config.php
。您可以通过$wpdb->last_query
查看上次运行的查询。它会让你知道你做错了什么。
感谢您的浏览! wp-config 用于测试它是否是数据库问题----应该在这篇文章中删除它。 $wpdb->last_query 给了我以下我认为不相关的信息(可能是错误的)... SELECT option_value FROM wpob_options WHERE option_name = 'wppb_private_website_settings' LIMIT 1
【参考方案1】:
我不确定这是否能完全解决您的问题,但您在存储 $_POST
值时缺少下划线 (_
)。您需要将这些行更改为以下内容:
$name=$_POST['aname'];
$roll=$_POST['aroll'];
$dept=$_POST['adept'];
【讨论】:
感谢您抽出宝贵的时间贾斯汀。我已经更正了下划线,但唉,仍然没有解决......【参考方案2】:终于找到答案了……
Change this
$name=$POST['aname'];
$roll=$POST['aroll'];
$dept=$POST['adept'];
$tablename = $wpdb->prefix.'std';
With this
$name=$_POST['aname'];
$roll=$_POST['aroll'];
$dept=$_POST['adept'];
$tablename = 'std';
插入错误是因为它试图插入表“wp_std”,假设您的 wordpress 上的前缀是 wp_ 或任何前缀。我还用 $_POST 更改了 $POST,因为即使插入为 true,它也会插入空值,因为 $POST 不存在,除非您声明它,正确的全局变量是 $_POST
【讨论】:
以上是关于使用 html 表单将数据插入到 wordpress 表中的主要内容,如果未能解决你的问题,请参考以下文章