首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用$wpdb->update更新多行

如何使用$wpdb->update更新多行
EN

WordPress Development用户
提问于 2018-01-29 07:34:14
回答 1查看 2.2K关注 0票数 0

我在前端post提交页面中创建了动态添加/删除字段。使用$wpdb->insert,系统运行得很好。

我还在前面创建了一个草稿编辑页面。在这个页面上,我希望这些动态字段得到更新。我尝试了$wpdb->update,但它只更新了最后一个字段。简而言之,我想在单次单击中更新多个行。

我的代码:

代码语言:javascript
运行
复制
$project_id = $_SESSION['project_id'];
global $wpdb;
$reward_ids = $wpdb->get_results("SELECT * FROM wpxa_rewards WHERE project_id = $project_id");
foreach($reward_ids as $reward_id); $r_id = $reward_id->ID;

$count = count( $project_reward_title );
for ( $i = 0; $i < $count; $i++ ) {

global $wpdb;

$wpdb->update( 'wpxa_rewards',

  array(

    'reward_title'       => "$project_reward_title[$i]",
    'reward_description' => "$project_reward_description[$i]",
    'reward_amount'      => "$project_reward_amount[$i]",
    'reward_shipping'    => "$project_reward_shipping[$i]",
    'est_date'           => "$project_est_date[$i]"

  ),

  array( 'ID' => $r_id ),

  array(

    '%s',
    '%s',
    '%d',
    '%s',
    '%s'

  ),

  array( '%d' )

);

}

请帮忙..。谢谢

EN

回答 1

WordPress Development用户

发布于 2018-01-29 11:20:39

这是在黑暗中有点刺痛,但我很有信心,问题是你的前程循环。它坏了(它不会执行任何操作,因为只有一个空语句(;)会受到影响,而且您可能希望它有一个包含其余代码的块。

例如:

代码语言:javascript
运行
复制

将只打印3,而

代码语言:javascript
运行
复制

将打印1、2和3的行。作为一般规则,我建议始终明确表示希望在循环中重复的内容。使用花括号,例如。

代码语言:javascript
运行
复制

它很容易阅读,并使您不受此类错误的影响。如果您必须在循环中添加另一行,只需在结束大括号之前添加它。

这段代码可能就是你想要的。

代码语言:javascript
运行
复制
$project_id = $_SESSION['project_id'];
global $wpdb;
$reward_ids = $wpdb->get_results("SELECT * FROM wpxa_rewards WHERE project_id = $project_id");
foreach($reward_ids as $reward_id) {
    $r_id = $reward_id->ID;

    $count = count( $project_reward_title );
    for ( $i = 0; $i < $count; $i++ ) {

        $wpdb->update( 'wpxa_rewards',

        array(

            'reward_title'       => $project_reward_title[$i],
            'reward_description' => $project_reward_description[$i],
            'reward_amount'      => $project_reward_amount[$i],
            'reward_shipping'    => $project_reward_shipping[$i],
            'est_date'           => $project_est_date[$i]

        ),

        array( 'ID' => $r_id ),

        array(

            '%s',
            '%s',
            '%d',
            '%s',
            '%s'

        ),

        array( '%d' )

        );

    }
}
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/292469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档