Php 否则,请使用fetchRow()zend

Php 否则,请使用fetchRow()zend,php,zend-framework,Php,Zend Framework,您好,我对if-else语句有一些问题。如果数据库中不存在一行数据,我想添加该行数据,如果存在则更新该行数据。但是,当数据库中没有该行时,它不会插入该行。当我手动将一行插入数据库时,它会更新该行 fetchRow方法将返回Zend_Db_Table_Row_Abstract的实例,如果找不到,则返回NULL。从Zend's,我相信您需要在保存行之前创建它 $select=$this->select()//从usertable和memberdetail中选择 ->from(array('membe

您好,我对if-else语句有一些问题。如果数据库中不存在一行数据,我想添加该行数据,如果存在则更新该行数据。但是,当数据库中没有该行时,它不会插入该行。当我手动将一行插入数据库时,它会更新该行

fetchRow方法将返回Zend_Db_Table_Row_Abstract的实例,如果找不到,则返回NULL。从Zend's,我相信您需要在保存行之前创建它

$select=$this->select()//从usertable和memberdetail中选择
->from(array('memberdetail','usertable')//通过memberid=username连接memberdetail和usertable
->其中('memberdetail.memberid=usertable.?',$userid);
$row=$this->fetchRow($select);
if(空($row))//如果行存在,则更新行
{
$newRow=$this->createRow($data);
$newRow->save();//如果行不存在,请添加它
}
其他的
{
$this->update($data,'memberid='(int)($memberdetail->getMemberid());
}

要么插入新行,要么更新旧行,我不能先插入新行,然后再更新。
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

    }
}