2011-07-12 4 views
0

プライマリキーはIdですが、同じ頭文字のdbにレコードが存在するかどうかをチェックしたい場合は、新しいレコードを挿入します更新を行う必要があります。私はこのコードを書いたが、うまくいきません。 「整合性違反:キー 『PRIMARY』の1062年の重複エントリ 『180』」私はsymfonyのからこのメッセージが表示さSymfony - データベースにレコードを挿入または更新する必要があります

$id = Doctrine_Core::getTable('college')->findBy('acronym', 'PMM')->getFirst()->getId(); 
$college = new college(); 
$college->setId($id); 
$college->setAcronym('PMM'); 
$college->setName('Paulo Miguel Mar'); 
$college->setUrl('www.pmm.com'); 
$college->save(); 

誰もが私を助けることができますか?おかげさまで アレクサンドル・スーザ


私は交換してください()ソリューションを試みたが、私は私のidフィールドを維持したいので、私はいくつかの問題を抱えています。だから私は更新をしたいと思います。

私はsave()がうまくいくはずだと思います。なぜなら、この関数が更新や挿入を行うのに十分スマートであると読んだからです。私はまだこのメッセージが表示されます: "整合性違反:1062重複するエントリ '180'のキー 'PRIMARY'

誰でも私を助けることができますか?

ありがとうございました。

$college = new college(); 
$college 
    ->setAcronym('PMM') 
    ->setName('Paulo Miguel Mar') 
    ->setUrl('www.pmm.com') 
    ->replace() 

これはあなたが当然の、ユニークとして頭字語を指定した場合に限り動作します:

答えて

2

ソリューションは、ちょうどreplace()を使用し、死んで簡単です。

関連する問題