Bir veritabanına veri kaydetmek için, bir datamapper aşağıdaki kodu göz önünde bulundurun:
/**
* Save data into the database
* @param Site_Model_User $model
* @throws InvalidArgumentException
*/
public function save($model) {
if (!$model instanceof Model_User) {
throw new InvalidArgumentException('Model is not of correct type');
}
$data = array();
$data['username'] = $model->getUserName();
$data['firstname'] = $model->getFirstName();
$data['lastname'] = $model->getLastName();
$data['email'] = $model->getEmail();
$data['password'] = $model->getPassword();
$data['role'] = $model->getRole();
$data['pic'] = $model->getImage();
if ($model->getId() < 0) {
// nieuw object, doe insert
$id = $this->getDao()->insert($data);
$model->setId($id);
} else {
// bestaand object, doe update
$where = $this->getDao()->getAdapter()->quoteInto('id = ?', $model->getId());
$this->getDao()->update($data, $where);
}
}
Ne ben benim amacım her şey kurtarmak olduğunu. Bir ekleme yaparken bu sorun yok. Ben tam doldurulmuş güncelleme göndereceğiz çünkü. Ama benim şifrenizi güncellemek istiyorum Diyelim ki. Ve ben bir güncelleme yapmak. Belirli değerler 0 olamaz diyor çünkü bana güncelleme yapmak izin vermez.
Örneğin: Mysqli deyimi hata yürütmek: Sütun 'username' "boş olamaz
What is the best soultion for this? Should I first load the whole object again from the database, then change the fields and then do the update? Or are ther other better, more common solutions?
Teşekkürler