2016-05-05 2 views
0

Может кто-нибудь помочь мне в чем-то не так с моим запросом? когда я его выполню, вывод выглядит следующим образом.Ошибка базы данных в кодеигниторе

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> 

Спасибо! :)

+0

Я не могу сохранить тот, который я ввел в базу данных. – Ruhinn

+0

Перейдите в папку «database.php» в папке config в приложении и перейдите в 'db_debug' и сделайте это правдой, как этот' 'db_debug '=> true,' Find фактическая проблема и решить ее ... –

ответ

0

Try после добавления кавычек столбец Имя читаться как ключевое слово в SQL

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

Я попробовал, но имеет ту же ошибку. – Ruhinn

+0

@Ruhinn отредактировал добавленные кавычки в значениях переменных –

0

Изменение $ SQL3 строку, вставить одиночные кавычки (') в ЦЕННОСТЕЙ:

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

Мне нужно поставить одну цитату в каждом значении? – Ruhinn

+0

да, вы должны поставить одинарные кавычки в каждом значении –

+0

Я попробовал, но он встал? в базе данных. – Ruhinn

0

использования эти методы для данных вставки

контролер

$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; 
} 
+0

Я получил его, спасибо.:) – Ruhinn

+0

, если вы удовлетворены, пожалуйста, примите мой ответ. –

0

Метод 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); 

}

Метод createspots в модели должны быть

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

}

Надеется, что это работает отлично. Убедитесь, что имя индекса массива совпадает с именем столбца таблицы базы данных.

+0

Я попробую этот. благодаря :) – Ruhinn

Смежные вопросы