我再次发现自己任由stackoverflow社区摆布!
我已经在我的PHP项目中使用了CodeIgniter,到目前为止这是一件轻而易举的事,尽管我在尝试用一些后期数据更新数据库字段时遇到了困难。
我的数组是常见的:数组(name=>value,name=>value,name==>value);其再次由提交的$_POST数据填充。
与数组类似,我有一个包含2个字段的数据库表:setting和value,其中settings下的名称与数组键相对应,value与数组键的值相对应。
(我解释对了吗?)
尽管如此,我已经试着让它正常工作了一段时间,但是,我真的只是在黑暗中挥手。
我希望你们中的一些聪明人能帮助我解决这个烦人的问题!
编辑:
感谢所有回复的人!我设法用以下代码产生了我想要的结果:
foreach ($form_data as $key => $val)
{
$this->db->where ('setting', $key);
$this->db->set ('value', $val);
$this->db->update ('recruitment');
}
现在,我尝试添加以下内容:
if ($this->db->affected_rows() >= '1') { return true; }
return false;
对于我的模型和
if ($this->RecruitmentSettings->Update($form_data) == TRUE)
{
redirect('recruitment/success');
}
我的控制器,但它根本没有按预期工作。你知道我做错了什么吗?
这里有很多问题。数据库中是否已有值,是否要更新这些值?还是每次都要输入新数据?答案取决于此。
您想要的是活动记录类的insert_batch()
或update_batch()
方法(如果这是用于数据库的方法)。
foreach($post_array as $key => $value)
{
$settings[] = array(
'setting' => $key,
'value' => $value
);
}
$this->db->insert_batch('your_db_table', $settings);
OR,用于更新:
$this->db->update_batch('your_db_table', $settings, 'setting');
您可以执行查询以检查设置,并根据是否有结果执行insert_batch
或update_batch
。如果每次都要插入,可以在插入之前删除表中的行。然而,如果没有交易,我不会这么做。
那么您想将数组数据存储在数据库中吗?你可以做这个
型号
foreach ($data as $key => $item)
{
$this->db->set ('setting', $key);
$this->db->set ('value', $item);
$this->db->insert ('table_name');
}
return ($this->db->affected_rows() > 0);
控制器
if ($this->RecruitmentSettings->Update($form_data))
{
redirect('recruitment/success');
}
else
{
echo "error";
}