Codeigniter updating records
Solution 1
For your profile_update
function, you are specifying the argument of $data
:
$this->Profile_model->profile_update($data);
But in your model function, you have not specified one:
function profile_update()
{
$this->db->where('user_id', 2);
$this->db->update('user_profiles', $data);
}
It should be:
function profile_update($data)
{
$this->db->where('user_id', 2);
$this->db->update('user_profiles', $data);
}
Solution 2
Your profile_update() is missing $data parameter
function profile_update($data)
{
$this->db->where('user_id', 2);
$this->db->update('user_profiles', $data);
}
Solution 3
Your model Profile_model
haven't received any parameter.
function profile_update($data) {
return $this->db
->where('user_id', 2)
->update('user_profiles', $data);
}
CyberJunkie
Updated on February 04, 2020Comments
-
CyberJunkie over 4 years
I'm having some trouble updating records with the Codeigniter framework. I'm using the MVC pattern and active records.
The code is for updating user profiles.
In my model,
Profile_model
I have a function to update...function profile_update() { $this->db->where('user_id', 2); $this->db->update('user_profiles', $data); }
The controller
Profile_crud
should retrieve data from a form and send the data to the model.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); }
and the form in my view
profile.php
On submit it triggers theupdate
function in my controller.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(); ?>
When I submit the form I get 3 types of errors.
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: data
Filename: models/profile_model.php
Line Number: 27
line 27 is
$this->db->update('user_profiles', $data);
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home1/requestg/public_html/housedwork/system/libraries/Exceptions.php:166)
Filename: codeigniter/Common.php
Line Number: 356
and
A Database Error Occurred
You must use the "set" method to update an entry.
I'm not sure what I'm doing wrong.. Can someone please help?