2015-02-10 3 views
0

У меня есть запрос вставки, но он работает как обновлениеторт PHP вставить запрос работает, как обновление

контроллер

public function home() 
{ 
$this->loadModel("Ratings"); 
$aaddRatings = $this->Ratings->addRatings($this->data['id'],$this->data['searches'],$this->data['name'],$this->data['email'],$this->data['review'],$this->data['rating']); 
$this->set(compact('aaddRatings')); 
} 

Модель

public function addRatings($id,$searches,$name,$email,$review,$rating) 
{ 
$this->create(); 
$aaddRatings =$this->save(array('id'=>$id,'searches'=>$searches,'name'=>$name,'email' => $email,'review' => $review,'rating' => $rating)); 
return($aaddRatings); 
} 

Debug

SELECT COUNT(*) AS `count` FROM `milgyonu_mber`.`ratings` AS `Ratings` WHERE `Ratings`.`id` = '19'  1 1 1 
2 SELECT COUNT(*) AS `count` FROM `milgyonu_mber`.`ratings` AS `Ratings` WHERE `Ratings`.`id` = '19'  1 1 1 
3 SELECT COUNT(*) AS `count` FROM `milgyonu_mber`.`ratings` AS `Ratings` WHERE `Ratings`.`id` = '19'  1 1 1 
4 UPDATE `milgyonu_mber`.`ratings` SET `action` = 'NO', `id` = '19', `searches` = 'Advanced Neurology & Super Speciality Hospital', `name` = 'shyam', `email` = '[email protected]', `review` = 'test msg', `rating` = '2' WHERE `milgyonu_mber`.`ratings`.`id` = '19' 
+0

мог вы печатаете сценарий «save», чтобы иметь возможность анализировать запрос «вставить»? Потому что если вы проверите свою консоль 4 отладки, будет обновление, а не вставка. – gabriel

ответ

4

Это потому что вы имеет поле идентификатора id, если в массиве сохранения есть первичный ключ, CakePHP рассматривает его как обновление этой записи.

Удалите это, и все должно быть в порядке!

Update ::

public function addRatings($id,$searches,$name,$email,$review,$rating) { 
    $this->create(); 
    $aaddRatings =$this->save(array('id'=>$id,'searches'=>$searches,'name'=>$name,'email' => $email,'review' => $review,'rating' => $rating)); 
    return($aaddRatings); 
} 

должно быть:

public function addRatings($id,$searches,$name,$email,$review,$rating) { 
    $this->create(); 
    $aaddRatings =$this->save(array('searches'=>$searches,'name'=>$name,'email' => $email,'review' => $review,'rating' => $rating)); 
    return($aaddRatings); 
} 

если у вас есть что-то еще установить в качестве первичного ключа для этой модели, то вы, вероятно, нету его, указанный в модели

+0

@but i dint set id field в качестве первичного ключа – ggutigod

+0

удалите '' id '=> $ id' из вашего кода при сохранении – Voycey

+0

, но id нужно установить какое-то ручное значение в поле id, и что мне делать? – ggutigod

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