我正在尝试在模板文件中插入由我开发的自定义表单值。这样我就在wordprress数据库中创建了一个customer_info表。这是正确的方法吗?
这是我到目前为止所尝试的代码:
<?php
if(isset($_POST['submit']))
{
global $wpdb;
echo $q=$_GET['q'];
$a=$_POST['name'];
$b=$_POST['lname'];
$c=$_POST['email'];
$d=$_POST['mobile'];
$e=$_POST['phone'];
$f=$_POST['accom'];
$g=$_POST['adress'];
$h=$_POST['remark'];
$wpdb->insert( 'customer_info', array( 'post_id' => $q, 'name' => $a,'lname' => $b, 'email' => $c,'mobile' => $d, 'phone' => $e,'adress' => $g, 'remark' => $h ), array( '%d', '%d','%s', '%s' ,'%s', '%s' ,'%s', '%s' ) );
}
?>
为什么不能正常工作?在同一过程中,我在localhost上插入了两个表单值。
在核心php中我知道如何调试等,所以请告诉我如何在wordpress中这样做因为wordpress有自己的wpdb类用于数据库操作。
这是我的html表单
<form method="post" action="">
<table width="50%" align="left">
<h3>Customer Info</h3>
<tr>
<td valign="top">Name</td><td valign="top"><input type="text" name="name" /></td>
</tr>
<tr>
<td valign="top">Last Name</td><td valign="top"><input type="text" name="lname" /></td>
</tr>
<tr>
<td valign="top">Email</td><td valign="top"><input type="text" name="email" /></td>
</tr>
<tr>
<td valign="top">mobile</td><td valign="top"><input type="text" name="mobile" /></td>
</tr>
<tr>
<td valign="top">Phone</td><td valign="top"><input type="text" name="phone" /></td>
</tr>
<tr>
<td valign="top">Address</td><td valign="top"><input type="text" name="adress" /></td>
</tr>
<tr>
<td valign="top">Remark</td><td valign="top"><input type="textarea" name="remark" /></textarea></td>
</tr>
<tr>
<td valign="top">Click for continue</td><td valign="top"><input type="submit" name="submit" value="Continue" /></td>
</tr>
</table>
</form>
如果我错过任何事情,请随时提出。
非常感谢。
答案 0 :(得分:1)
你可以尝试像这样的错误
1) Enable database error display via $wpdb->show_errors()
2) Check what query is being formed and run via $wpdb->last_query
您的案例中的 name
字段是一个字符串,您已在插入数组中将其定义为整数,请使用'%s'
代替%d
。
同时为输入使用不同的name
属性,因为name
是保留字,可能是原因。