簡體   English   中英

Codeigniter中發生數據庫錯誤

[英]Database error occurred in codeigniter

有人可以幫我查詢問題嗎? 當我執行它時,輸出顯示如下。

Error Number: 1064

你有一個錯誤

SQL語法; 檢查與您的MySQL服務器版本相對應的手冊,以在第1行的'?,?,?,?,?,?,?)'附近使用正確的語法

INSERT INTO touristspot(TouristspotID, AccountID, CategoryID, Name, Description, street, city_area, city) Values(0, 111, ?, ?, ?, ?, ?, ?)

我的控制器:

   public function manager_spotdetails(){


    $data = array(

        'CategoryID' => $this->input->post('category'),
        'Name' => $this->input->post('spotname'),
        'Description' => $this->input->post('desc'),
        'street' => $this->input->post('street'),
        'city_area' => $this->input->post('city_area'),
        'city' => $this->input->post('city')
    );

    $this->load->model('managerm');
    $data['cat'] = $this->managerm->category();
    $this->managerm->createspots($data);
    $this->load->view('manager_spotdetails', $data);


}


public function createTouristspot(){

    $this->load->model('managerm');
    $data['cat'] = $this->managerm->category();
    $this->load->view('manager_spotdetails');
}

我的模特:

    public function createspots($data){


    $b = $_SESSION['accountid'];
    $this->db->trans_start();
    $spot_id= $this->db->insert_id();
    $sql3= "INSERT INTO touristspot(TouristspotID, AccountID, CategoryID, Name, Description, street, city_area, city) Values($spot_id, $b, ?, ?, ?, ?, ?, ?)";      
    $this->db->query($sql3, $data);
    $this->db->trans_complete();
    return $this->db->insert_id();
}

    public function category(){
    $this->db->select('CategoryID');
    $this->db->select('CategoryType');
    $this->db->from('category');
    $query= $this->db->get();
    return $query->result();
}
}

我的看法:

                <div class="form-group">
                         <span class="input-group-addon" id="basic-addon1">Category Type</span>
                        <select class="form-control" name="category">
                            <?php foreach($cat as $row) {?>
                            <option value="<?php echo $row->CategoryID?>"><?php echo $row->CategoryType?></option>
                <?php }?>
                        </select>

謝謝! :)

在添加引號后嘗試嘗試在SQL中將名稱列讀取為關鍵字

$sql3= "INSERT INTO touristspot(`TouristspotID`, `AccountID`, `CategoryID`, `Name`, `Description`, `street`, `city_area`, `city`) Values('$spot_id','$b', '', '', '','', '', '')"; 

更改$ sql3字符串,在VALUES中插入單引號('):

$sql3= "INSERT INTO touristspot(`TouristspotID`, `AccountID`, `CategoryID`, `Name`, `Description`, `street`, `city_area`, `city`) VALUES('$spot_id', '$b', ?, ?, ?, ?, ?, ?)"; 

使用此方法插入數據

控制者

$data = array(
      "COLUMN_NAME"=>$this->input->post("account_fname"),
      "COLUMN_NAME"=>$this->input->post("account_lname")
);
$insert = $this->Model_name->insert("table_name", $data);

模型

public function insert($table,$data){
        $this->db->insert($table,$data);
        $id = $this->db->insert_id();
        return $id;
}

控制器中的方法manager_spotdetails應該是

public function manager_spotdetails(){
$data = array(

    'AccountID'=>$_SESSION['accountid'],
    'CategoryID' => $this->input->post('category'),
    'Name' => $this->input->post('spotname'),
    'Description' => $this->input->post('desc'),
    'street' => $this->input->post('street'),
    'city_area' => $this->input->post('city_area'),
    'city' => $this->input->post('city')
);

$this->load->model('managerm');
$data['cat'] = $this->managerm->category();
$this->managerm->createspots($data);
$this->load->view('manager_spotdetails', $data);

}

模型中的方法createpots應為

public function createspots($data){
$this->db->trans_start();
$this->db->insert('touristspot', $data);
$this->db->trans_complete();
return $this->db->insert_id();

}

希望它能正常工作。 確保您的數組索引名稱與數據庫表列名稱相同。

暫無
暫無

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

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