首页 > 解决方案 > Codeigniter - 为什么 Update_batch 只更改了一行

问题描述

我有一个表格示例

ID | answer1 | answer2   | question

1  | abc   | ghi    | 

2  | def   | klm    |

我想通过选择 ID 更新列问题 这是我获取 ID 表格示例的代码

$query = $this->db->query('SELECT * FROM example');
    $data=array();
    foreach($query->result() AS $value){
        $data[] = $value->id;

    } 
$implode = implode(',',$data);
//get from post
$question= $this->input->post('question');
foreach($question AS $q){

        $data[]=array(
        'id' => $implode,
        'question' => $q
        );

        }
        $this->db->update_batch('example',$data,'id');
//I use multiple add filed
<button class="add_field_button2">Add More Fields</button>
<input type="text" name="question[]" value="<?= $rowk->question;?>">

当添加 2 个问题以更新表时,仅更改了一行

我的数据数组

Array ( [0] => Array ( [id] => 1,2 [question] => question1 ? ) ) Array ( [0] => Array ( [id] => 1,2 [question] => question1 ) [1] => Array ( [id] => 107,108 [question] => question2 ) )

标签: phpsqlcodeigniter

解决方案


如果您使用 update_batch 那么您的数组格式必须是这样的

Array(
    [0]=>Array(
            [id]=>1,
            [question] => question1 ?
        ),
    [1]=>Array(
        [id]=>2,
        [question] => question1 ?
    ),
    [2]=>Array(
        [id]=>107,
        [question] => question2
    )
)

我认为您的数组格式不正确


推荐阅读