php - 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 ) )
解决方案
如果您使用 update_batch 那么您的数组格式必须是这样的
Array(
[0]=>Array(
[id]=>1,
[question] => question1 ?
),
[1]=>Array(
[id]=>2,
[question] => question1 ?
),
[2]=>Array(
[id]=>107,
[question] => question2
)
)
我认为您的数组格式不正确
推荐阅读
- c++ - 为什么 (( cout << ptr; cout << "\n" << ++ptr; )) 和 (( cout << ptr << "\n" << ++ptr; )) 给出不同的结果
- mysql - 创建 MySQL 函数时出现语法错误
- php - 如何在 PHP 中对 CSV 文件中的表中的列进行排序?
- mysql - 有人可以帮助我使用 MySQL 中的功能吗?
- java - HSSFRow getCell() 方法以不同格式返回日期值
- android-studio - Lint 规则:根据限定的类名查找 UClass
- c# - Linq 选择模型并设置属性
- flutter - 如何更改 OutlinedButton 边框颜色?
- c - 为什么我的空字符数组以 6 开头?
- javascript - 部分边框颜色