2015-05-25 3 views
1

Прежде всего, я новичок в кодировании. Я пытаюсь «вставить, если не существует другого обновления» моей базы данных. Я использую код ниже:INSERT ... ON DUPLICATE KEY UPDATE не работает

$query = "  
      INSERT INTO offers (user_i , startPoli_i , finalPoli_i ,depDay_i , onoma_pro , epitheto_pro , prosfora , comments_pro ,string_uniq) 
     VALUES (:u1 , :sP1, :fP1 ,:dD1, :op, :ep , :p , :cp , :su) 
     ON DUPLICATE KEY UPDATE 
     string_uniq = :su 
     "; 


    $query_params = array(
     ':u1' => $_POST['user_i'], 
     ':sP1' => $_POST['startPoli_i'], 
     ':fP1' => $_POST['finalPoli_i'], 
     ':dD1' => $_POST['depDay_i'], 
     ':op' => $_POST['onoma_pro'], 
     ':ep' => $_POST['epitheto_pro'], 
     ':p' => $_POST['prosfora'], 
     ':cp' => $_POST['comments_pro'], 
     ':su' => $_POST['string_unique'] 
    ); 

Я объявляю столбец «string_uniq» уникальным. В моей таблице используется MyISAM. Проблема: когда значение ":su" идентично существующему значению column 'string_uniq', а для example ":p" значение отличается, обновление не происходит. Любое предложение; Заранее спасибо

ответ

0

Я считаю, что вам нужно добавить поля, которые вы хотите обновляются, как:

ON DUPLICATE KEY UPDATE 
     string_uniq = :su, prosfora = :p 
Смежные вопросы