假设我的 wp 数据库 fruits 中有一个表:
CREATE TABLE `fruits` (
`fruit` varchar(99),
`istasty` tinyint(1)
)
INSERT INTO `fruits` (`fruit`, `istasty`) VALUES
('pear', 1),
('peach', 1),
('rotten strawberry', 1),
('strawberry', 1),
('banana', 1),
('apple', 1);
目标是将“烂草莓”行中的 istasty 更新为 0。
class reference for wpdb in the wordpress codex给出:
$wpdb->update( $table, $data, $where, $format = null, $where_format = null );
所以我尝试了以下操作:
$wpdb->update(
'fruits',
array(
'fruit' => 'rotten strawberry',
'istasty' => '0'
),
array( 'fruit' => 'rotten strawberry' ),
array(
'%s', // value1
'%d' // value2
),
array( '%d' )
);
显然这会将每条记录更新为“烂草莓”、“1”。
我在这里做错了什么?
最佳答案
尝试将最后一个数组从 array( '%d'
) 更改为 array( '%s' )
。您现在告诉脚本 where 变量是一个整数,但事实并非如此。
您还可以从第一个数组中删除 'fruit' => 'rotten strawberry'
。在此数组中,您可以放置任何要更新的内容。您要做的就是将istasty 设置为0。
关于mysql - wordpress wpdb更新困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34231742/