0
以下のコードは、コントローラーに余分なステートメントを追加するときにのみデータを削除します。何故ですか?データベースを処理する正しい方法は何ですか?
私はわずか数ヶ月前からcodeigniterを使用していましたが、私はこのような変なバグに悩まされ続けています。
これはモデルファイルである:
My_model.php
function delete_data($where=array())
{
return $this->db->delete('table1', $where);
}
コントローラでコード:
tasks.php
function do_delete_data()
{
$this->load->model('My_model');
$result = array('status' => '', 'message' => '');
try
{
$this->db->trans_begin();
$id = $this->input->post('post_id', TRUE);
if (! $this->My_model->delete_data(array('id' => $id)))
{
throw new Exception('Database process failed.');
}
$result['message'] = $this->db->last_query(); // extra statement
$this->db->trans_commit();
$result['status'] = 1;
}
catch(Exception $e)
{
$this->db->trans_rollback();
$result['message'] = $e->getMessage();
}
if ($this->input->is_ajax_request())
{
echo json_encode($result);
}
}
それ
display.php
$.ajax({
url: '/tasks/do_delete_data',
type: 'post',
data: {
'post_id' : $('#post_id').val(), // e.g. 12
},
dataType: 'json',
success: function(response) {
alert('File deleted successfully.');
console.log(response);
},
error: function(e) {
alert('an error occurred.');
}
});
私は '$ _POST'で' $ id'を使う必要があります – devpro
@devpro申し訳ありませんが、メモリからこの質問を書いていて、コードが間違っていることを確認した後、コードを編集しました。どうかしてみてください – dapidmini
はい、間違ったインデックス名を使用しています。 '$ id = $ this-> input-> post( 'post_id'、TRUE);' '$ id = $ this-> input-> post 'id'、TRUE); 'print_r($ this-> input-> post())'で余分な文を置き換えたときに、コントローラの – devpro