Comment enregistrer les données dans la base de données?

J'ai l'habitude d'enregistrer de nouvelles données dans la base de données comme ceci:

$this->MyTable->set(array(
 'id' => $id,
 'code' => $temp_code,
 'status' => $status,
 'age' => $age,
 'location' => $location,
 'money' => $money
));

$this->MyTable->save();

Si l'ID existe déjà dans la base de données-je mettre à jour ses champs correspondants comme ceci:

$this->Adtweet->id = $id;
$this->Adtweet->saveField('code', $temp_code);
$this->Adtweet->saveField('status', $status);

Est-il meilleur ou " bon " moyen de faire cela?

Lorsque je tente d'entrer un ID qui existe déjà et j'utilise le set fonction, j'ai le SQL erreur d'intégrité:

(Erreur: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '150245925' for key 'PRIMARY')

Comment puis-je écrire une fonction proprement gère les entrées en double, sans avoir à retourner une erreur?

OriginalL'auteur trante | 2012-06-20