我在使用Codeigniter框架更新记录时遇到了一些麻烦。我正在使用MVC模式和活动记录。
该代码用于更新用户个人资料。
在我的模型中,Profile_model
我有更新功能......
function profile_update()
{
$this->db->where('user_id', 2);
$this->db->update('user_profiles', $data);
}
控制器Profile_crud
应从表单中检索数据并将数据发送到模型。
function update()
{
$data = array (
'country' => $this->input->post('country'),
'website' => $this->input->post('website')
);
$this->load->model('Profile_model');
$this->Profile_model->profile_update($data);
}
和我视图中的表单profile.php
在提交时,它会在我的控制器中触发update
函数。
<?php echo form_open('profile_crud/update'); ?>
<p>
<label for="country">Country</label>
<input type="text" name="country" id="country" />
</p>
<p>
<label for="website">Website</label>
<input type="text" name="website" id="website" />
</p>
<p><input type="submit" value="Save" /></p>
<?php echo form_close(); ?>
当我提交表单时,我会收到3种错误。
遇到PHP错误
严重性:注意
消息:未定义的变量:数据
文件名:models / profile_model.php
行号:27
第27行是$this->db->update('user_profiles', $data);
遇到PHP错误
严重性:警告
消息:无法修改标头 信息 - 已经发送的标题 (输出始于 /home1/requestg/public_html/housedwork/system/libraries/Exceptions.php:166)
文件名:codeigniter / Common.php
行号:356
和
发生数据库错误
您必须使用“set”方法 更新条目。
我不确定我做错了什么..有人可以帮忙吗?
答案 0 :(得分:15)
对于profile_update
函数,您指定的参数为$data
:
$this->Profile_model->profile_update($data);
但是在你的模型函数中,你还没有指定一个:
function profile_update()
{
$this->db->where('user_id', 2);
$this->db->update('user_profiles', $data);
}
应该是:
function profile_update($data)
{
$this->db->where('user_id', 2);
$this->db->update('user_profiles', $data);
}
答案 1 :(得分:3)
您的profile_update()缺少$ data参数
function profile_update($data)
{
$this->db->where('user_id', 2);
$this->db->update('user_profiles', $data);
}
答案 2 :(得分:3)
您的模型Profile_model
未收到任何参数。
function profile_update($data) {
return $this->db
->where('user_id', 2)
->update('user_profiles', $data);
}