Wpdb无法更新数据库中的列

时间:2019-02-23 作者:TheXrion

在自定义表中,我尝试使用$wpdb->update类更新特定列,并使用HTML表单更新具有相同id的列(在这里,dlname是数据的id)。

问题是,当我尝试使用HTML表单更新表中的列时,页面只会刷新

BUT When I manually set ID in codes and THEN typing and submitting new value by HTML form it will work like charm.

It seems to be machine cannot understand the value that inputted from the form 这是我的代码:

<?php
if(isset($_POST[\'btnUpdate\'])){
    global $wpdb;
    $table_name=\'wp_AR_tb_name\';

    $data_array = array(

    \'dstatus\' => $_POST[\'dstatuschange\'],
    \'downloadname\' => $_POST[\'dlname\'],

    );

    $data_where = array(\'downloadname\' =>\'dlname\');
    $wpdb->update($table_name,$data_array,$data_where);
}
这是我的表格:

<form method="POST">

    <label> Input One : </label>
    <input type="text" name="dlname"/>

    <label> Input Two : </label>
    <input type="text" name="dstatuschange" />

    <button type="submit" name="btnUpdate"> Submit </button>
</form>

1 个回复
最合适的回答,由SO网友:Fabrizio Mele 整理而成

首先,观察:根据您的逻辑,下面突出显示的线条是否正确?此查询将设置dstatusdownloadname 行中的字段为$_POST[\'dstatuschange\']$_POST[\'dlname\'] if downloadname 字段是\'dlname\' 一串也许你想把$_POST[\'dlname\'] 中的变量WHERE 条件

其次,如果您使用标准的wordpress方式来管理自定义帖子,那么wordpress的效果会更好。看看this answer 了解如何正确处理自定义表单提交。