您正在使用$wpdb->where()
不正确。
在代码中,$data_array
和$data_where
都是一样的,所以如果我们假设$_POST[\'getval\']
是1
, 生成的查询将是:
UPDATE wp_fes_vendors SET requests=1 WHERE requests=1
你知道这有什么意义吗?它正在设置
requests
列收件人
1
对于所有行,其中
requests
已经是
1
. 这是一个永远不会做任何事情的查询。
正确的使用方法$wpdb->where()
就是要确保$data_array
包含列名以及要将其设置为的新值,而$data_where
应包含用于标识应更新的行的列和值。
例如,如果要设置requests
到1
对于ID为的供应商5
, 我需要这样做:
$data_array = array(
\'requests\' => 1
);
$data_where = array(
\'id\' => 5
);
$wpdb->update( $table_name, $data_array, $data_where );
该查询的结果将是:
UPDATE wp_fes_vendors SET requests=` WHERE id=5
这意味着在表单中,您需要发布列的新值以及需要更新的供应商ID。