Ошибка базы данных Повторяющаяся запись
Так что у меня возникает эта ошибка, когда при вставке данных у меня появляются повторяющиеся значения, теперь мой запрос корректен, я пытался запустить его в phpmyadmin и работает просто отлично, но kohana выдает мне ошибки, вот так выглядит мой запрос:
DB::query(Database::INSERT, 'INSERT INTO `views` ( user_id, viewer_id, username, picture, view_time, view_count)
VALUES ("'.$this->request->param('id2').'", "'.$user->id.'", "'.$user->username.'", "'.$user->picture.'", '.DB::expr('NOW()').', "1")
ON DUPLICATE KEY UPDATE `view_time` = NOW(), `view_count` = view_count +1
И в чистом sql:
INSERT INTO `views` ( user_id, viewer_id, username, picture, view_time, view_count )
VALUES (
"134173", "139173", "username", "pic.jpg", NOW( ) , "1"
) ON DUPLICATE
KEY UPDATE `view_time` = NOW( ) ,
`view_count` = view_count +1
Поэтому в основном я пытаюсь вставить и дублировать значения, которые я обновляю, но по какой-то причине коана выдает мне ошибку:
kohana Database_Exception [ 1062 ]: Duplicate entry
Как я могу удалить эту ошибку?
1 ответ
Решение
Возможно, попробуйте этот подход, не указав тип запроса:
$query = "
INSERT INTO `views` (user_id, viewer_id, username, picture, view_time, view_count)
VALUES (%d, %d, '%s', '%s', %s, %d)
ON DUPLICATE KEY UPDATE `view_time` = %s, `view_count` = view_count + 1";
$query = sprintf($query, $this->request->param('id2'), $user->id, $user->username, $user->picture, DB::expr('NOW()'), 1, DB::expr('NOW()'));
$result = Database::instance()->query(NULL, $query);