我尝试更新名为' active'在MySQL中,每次执行此操作wpdb::update
都会将我的值更改为0
。有人知道为什么吗?下面我贴一些例子。
这里是为DB创建代码:
CREATE TABLE `wp_mdbaffiliate_applications` (
`id` INT(11) NOT NULL,
`active` CHAR(200) NOT NULL,
`user_id` INT(11) NOT NULL,
INDEX `id` (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
这是我创建行的方式:
public function __construct() {
global $wpdb;
$wpdb->show_errors = true;
$this->wpdb = $wpdb;
}
$this->wpdb->insert('wp_mdbaffiliate_applications', array(
'user_id' => get_current_user_id(),
'active' => '0'
));
这是我的更新查询:
$status = $this->wpdb->update('wp_mdbaffiliate_applications', array(
'active' => 'awaiting'
), array(
'user_id' => get_current_user_id()
));
$mySpecificCase = array(
$this->wpdb->last_query,
$this->wpdb->last_result,
$this->wpdb->last_error,
);
var_dump($mySpecificCase);
var_dump($status);
这是它总是回归的东西(无论价值是等待'还是'伞'):
array(3) { [0]=> string(78) "UPDATE `wp_mdbaffiliate_applications` SET `active` = 0 WHERE `user_id` = 33584" [1]=> array(0) { } [2]=> string(0) "" }
int(0)
如果我将active
更改为其他任何内容(例如状态),则会运行并返回:
array(3) { [0]=> string(87) "UPDATE `wp_mdbaffiliate_applications` SET `status` = 'awaiting' WHERE `user_id` = 33584" [1]=> array(0) { } [2]=> string(0) "" }
int(1)
当我使用它时:
$this->wpdb->query("UPDATE `wp_mdbaffiliate_applications` SET `active` = 0 WHERE `user_id` = 33584")
它工作正常。