簡體   English   中英

jQuery Ajax在SQL返回錯誤時顯示錯誤500

[英]Jquery Ajax Shows error 500 when ever sql returns error

我正在使用Codeigniter,通過ajax在數據庫中插入值時遇到問題。 sql查詢引發錯誤時,會發生問題。 這是我的控制器代碼:-

public function Register_data()
{
    $data = array(
        'user_name'=>$this->input->post('name'),
        'user_email'=>$this->input->post('emailid'),
        'user_pwd'=>$this->input->post('pwd'),
        'user_pno'=>$this->input->post('pno'),
        'user_gender'=>$this->input->post('gender'),
        'user_age'=>$this->input->post('age'),
        'dor'=>date('Y-m-d H:i:s'),);
    $this->load->model('Register');
    $this->Register->insert_content($data);
    $output = array(); //Creating output array for json response to ajax
    $output['result'] = $this->Register->getStatus();    echo $output['result'].'---';
    $output['message'] = $this->Register->getMessage();  echo $output['message'];
    echo json_encode($output);
}

我的模型代碼是這樣的:

class Register extends CI_Model{
var $message;
var $status;
public function __construct() 
{
    parent::__construct();
    $this->load->database();
}
public function insert_content($da)
{   
    if ($this->db->insert('user',$da))//Checking if mysql query is successful
    {
        $this->status = true;
        $this->message = "DATA INSERTED";
    }
    else
    {
        $this->status = false;
        $this->message = $this->db->error_message();            
    }
}
public function getStatus()
{
    return $this->status;
}
public function getMessage()
{
    return $this->message;
}}

這是我的Ajax電話:-

$.ajax({
    url: "<?php echo site_url('Home_Controller/Register_data');?>",
    data: $("#frm").serialize(),
    type: 'POST',
    success: function (data) {
        alert(data);
        var resp = $.parseJSON(data);
        if (resp.result) {
            window.location.href = "<?php echo site_url('Home_Controller');?>";
        } else {
            $("#msgs").html(resp.message);
        }
    },
    error: function (error) {
        $("#msgs").html(JSON.stringify(error)); //This is returned when model condition for inserting data throws error.
    }
});

紅色文本是出現SQL復制時顯示的錯誤

並且請注意,正在插入數據。 因此,插入時沒有問題。 我已經使用json返回作為對ajax的響應。 僅當插入錯誤時才會出現問題。 示例:-我在數據庫中保持電子郵件的唯一性,因此當我在db中插入重復項時,mysql會引發一個錯誤,提示重復錯誤,因為您可以在模型中看到我的代碼,其中,if條件和在插入查詢時獲取失敗狀態,並且味精存儲在變量中。 這就是我以前在核心php中所做的方式。 我不知道如何在codeigniter中處理此問題。 請提供良好的解決方案。 任何幫助將不勝感激。

Codeigniter包含error()函數來顯示數據庫錯誤。 db-> error_message()是聽到的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM