如何在一个查询中插入多个后置值?

时间:2013-01-08 作者:MultiDev

我有一个自己使用的自定义脚本/插件,可以创建一篇帖子以及一些Posteta信息。现在,我有多个$wpdb->insert, 但我想把它浓缩成一个问题。我该怎么做?

这是我当前的代码:

$meta_table = $wpdb->prefix . \'postmeta\';

    $wpdb->insert( 
    $meta_table, 
    array( 
        \'post_id\' => $post_id, // Already defined
        \'meta_key\' => \'client-pwd\',
        \'meta_value\' => $post_pwd // Already defined
        )
        );  

$wpdb->insert( 
    $meta_table, 
    array( 
        \'post_id\' => $post_id, 
        \'meta_key\' => \'gallery-status\',
        \'meta_value\' => \'private\'
        )
        );  

$wpdb->insert( 
    $meta_table, 
    array( 
        \'post_id\' => $post_id, 
        \'meta_key\' => \'meta-description\',
        \'meta_value\' => \'Description...\'
        )
        );  

$wpdb->insert( 
    $meta_table, 
    array( 
        \'post_id\' => $post_id, 
        \'meta_key\' => \'can-purchase\',
        \'meta_value\' => \'yes\'
        )
        );  

$wpdb->insert( 
    $meta_table, 
    array( 
        \'post_id\' => $post_id, 
        \'meta_key\' => \'can-email\',
        \'meta_value\' => \'yes\'
        )
        );  

$wpdb->insert( 
    $meta_table, 
    array( 
        \'post_id\' => $post_id, 
        \'meta_key\' => \'can-download\',
        \'meta_value\' => \'yes\'
        )
        );  

1 个回复
SO网友:Milo

不能通过wpdb插入多行insert, 您必须使用原始SQL:

INSERT into $meta_table (post_id, meta_key, meta_value) 
VALUES
(\'val1\', \'val2\', \'val3\'),
(\'otherval1\', \'otherval2\', \'otherval3\')

However-

您应该始终在存在函数的地方使用API-使用add_post_meta 因此,您的插件与WordPress环境集成,其行为可以修改,而无需直接编辑插件的文件。

结束

相关推荐

使用新的wpdb使用wp_Query搜索另一个数据库

我目前有一个简单的wp_query 在我的wordpress网站上搜索工作。我现在希望相同的搜索在它自己的数据库中查找结果,并在同一服务器上查找另一个结果。我发现我可以new wpdb()然后$mydb->get_results() 来获取帖子。我设法获得了其中一篇文章的标题,但现在我想把它整合到我的wp_query. 这可能吗?下面是代码的细分:$args = array( \'post_type\' => \'post\', \'show_posts\' => \'