0

電話番号を更新できないようです。私は 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();
        ?>
4

4 に答える 4

1

この更新ステートメントを試すことができます。これがうまくいかない場合でも、使用している列の型を確認してください (varchar または競合するかどうか、およびそのサイズ)

    <?php
        $data['strPhoneNumber'] = $submit_phone;
        $this->db->where('intMemberID', $submit_userid)->update('tblMembers', $data);
    ?>
于 2013-06-20T09:04:21.080 に答える
0

エラーを出力してみる

return $this->db->update("tblMembers", array );

updatePhone の結果を var_dump すると、テーブルなどにエラーがあるかどうかがわかります

リダイレクトする前に true を返すことを確認してください

于 2013-06-20T10:44:04.587 に答える
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;

上記のコードを関数に入れ、クエリ文字列を確認します

于 2013-07-16T12:12:06.830 に答える