插件中$wpdb->update()查询的返回值错误

时间:2016-07-15 作者:Terungwa

尽管我的查询语法似乎正确,但空数据库表上的更新查询的返回值是错误的。当我在空表上运行查询时,执行ELSE语句,但表中没有update条目。可能有什么问题?

    if($wpdb->update( 
        \'wp_counter_cookies\', 
        array( 
            \'visit\' => current_time( \'mysql\' ), // string
        ), 
        array( \'cookie\' => $counter_cookie ), 
        array( 
            \'%s\'    // value1
        ), 
        array( \'%s\' ) 
    )=== FALSE)
    {
        $table_name = $wpdb->prefix . \'counter_cookies\';

        $wpdb->insert( 
            $table_name, 
            array( 
                \'visit\' => current_time( \'mysql\' ), 
                \'cookie\' => $counter_cookie,
                \'user\' => $user,
            ), 
            array( 
                \'%s\', 
                \'%s\', 
                \'%s\' 
            ) 
        );                       
    }
    else
    {
        $ignore = true;
    }

1 个回复
SO网友:Terungwa

将比较运算符改为==而不是@Czerspaluate建议的严格比较==,解决了这个问题,因为在执行更新函数时没有更新行,所以返回0(int)。只有在出现错误时才返回False。

相关推荐