mysql - wordpress wpdb更新困难

标签 mysql database wordpress

假设我的 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/

相关文章:

php - laravel 中的 groupBy 与 Eloquent 关系

mysql - 生成过去几个月并加入不相关的数据

database - grails:在 gsp 中显示数据库中的元素列表

asp.net - "SELECT * FROM..."VS "SELECT ID FROM..."性能

php - 在 Wordpress 中将特色图片添加到 RSS 提要

mysql - MySql如何从每组中选择前N条记录

php - 为什么只向 mysql 数据库插入一列不会在 codeigniter 中显示错误?

java - 在 Java 中使用 BigDecimal 打印值

wordpress - web.config::重定向除 root/index.html 之外的所有内容(Azure、WordPress)

php - 页面加载时不可见 "No result found"