我似乎无法更新电话号码,我是Codeigniter的新手并且一直想弄清楚我做错了什么。
这是我的模特:
function updatePhone($submit_userid, $submit_phone) {
$this->db->where("intMemberID", $submit_userid);
$this->db->update("tblMembers", array(
"strPhoneNumber" => $submit_phone
));
}
这是我的控制器:
public function updateAccount() {
$this->load->model('updateModel');
$this->load->model('userModel');
$data['userdata'] = $this->session->userdata('userobject');
$this->form_validation->set_rules('phone', 'Phone', 'required|min_length[8]|max_length[12]|xss_clean');
if ($this->form_validation->run() == false) {
$this->load->view('updateView', $data);
} else {
$submit_userid = $this->input->post('userid');
$submit_phone = $this->input->post('phone');
$this->userModel->updatePhone($submit_userid, $submit_phone);
redirect('updateController/updateAccount');
}
}
这是我的观点:
<?php
echo validation_errors();
echo form_open('updateController/updateAccount');
echo '<input type="hidden" name="userid" value=' . $userdata->intMemberID . '/> <br/>';
echo "$userdata->strMemberFirstName $userdata->strMemberLastName";
echo "<br>";
echo "Phone Number: <input type='text' name='phone' placeholder='$userdata->strPhoneNumber'/>";
echo '<INPUT type="submit" value="Update" name="submit"/>';
echo form_close();
?>
答案 0 :(得分:1)
你可以尝试这个更新语句,即使这不起作用,请检查你正在使用的列类型(varchar或其他及其大小,如果它有冲突或不)
<?php
$data['strPhoneNumber'] = $submit_phone;
$this->db->where('intMemberID', $submit_userid)->update('tblMembers', $data);
?>
答案 1 :(得分:0)
您永远不会对数据库执行更新。更新中不需要select语句,您将表名传递给update方法。
function getUpdate($submit_userid, $submit_phone) {
$this->db->where("intMemberID", $submit_userid);
$this->db->update("tblMembers", array(
"strPhoneNumber" => $submit_phone
));
}
你不应该真的调用方法getUpdate,因为你实际上并没有得到任何东西,所以它并不是真正的语义。 updatePhone
可能是一个更好的名字。
答案 2 :(得分:0)
尝试打印错误
return $this->db->update("tblMembers", array );
var_dump updatePhone结果,您将看到表或其他内容是否有错误
确保在重定向
之前返回true答案 3 :(得分:0)
$data = array(
"strPhoneNumber" => $submit_phone
);
$where = "intMemberID = ".$intMemberID;
//generate the query string not executing
$str = $this->db->update_string('tblMembers', $data, $where);
echo '<pre>';
echo $str;
die;
将上述代码放入您的函数中,验证查询字符串