public function updateMemberdetail(Application_Model_Memberdetail $memberdetail)
{
$data = array(
'memberid' => $memberdetail->getMemberid(),
'membername' => $memberdetail->getMembername(),
'contact' => $memberdetail->getContact(),
'birthday' => $memberdetail->getBirthday(),
'email' => $memberdetail->getEmail(),
'address' => $memberdetail->getAddress(),
);
$auth= Zend_Auth::getInstance(); //declare zend_auth to get instance
$user= $auth->getIdentity(); //get identity of user
$userid = $user->userid; //get userid of user
$this->select() //select from usertable and memberdetail
->from(array('memberdetail', 'usertable')) //join memberdetail and usertable through memberid = username
->where('memberdetail.memberid = usertable.?', $userid);
$row = $this->fetchRow($select);
if ($row == true) //if row exist update row
{
$this->update($data, 'memberid = '. (int)($memberdetail->getMemberid()));
}
else
{
$this->insert($data); //if row doesnt exist, add it
}
}
こんにちは、ifelseステートメントに問題があります。データベースにデータが存在しない場合はデータの行を追加したいのですが、存在する場合は更新します。ただし、DBに行がない場合は、挿入されません。DBに手動で行を挿入すると、行が更新されます。