public function add_employee($input)
{
$key_array = null;
$value_array = null;
$bind_array = null;
foreach ($input as $column => $value) {
if ($value) {
#$bind_array => ?, ?, ?;
#$value_array => [$value1, $value2, $value3];
#$key_array => column1, column2, column3;
}
}
$sql = "INSERT INTO ol_employee ($key_array) VALUES ($bind_array)";
$this->db->query($sql, $value_array);
}
请参阅函数中的注解,如何实现该输出?这个想法是,从我得到的27个字段的输入帖子中,我只想填充到我准备的$sql查询中,如您所见。我不认为手动编写每个表列是一个好方法。
我使用codeigniter4php框架+postgresql。
3条答案
按热度按时间0tdrvxhp1#
根据codeigniter 4文档,您可以在循环中为每个员工执行以下操作:
elcex8rz2#
您可以使用array和implode函数,首先生成键数组、值数组和绑定数组的数组,然后使用implode()并在sql中使用,如下所示
mm5n2pyu3#
根据alex granados的见解,这是我使用的查询:
这将消除空字段,无论有多少字段,仍然工作良好。只要表单中的输入名称字段与db column相同。否则,我们需要做一些改变。
谢谢你们。