dongzi0857 2016-03-05 07:08
浏览 15
已采纳

ZF2保存到多个表

I have a mapper class, OrganizationMapper that saves data to multiple tables with the save method. The save method looks like this:

public function save(OrganizationInterface $organization) {
        $action = new Insert('TABLE NAME');
        $action->values([<SOME VALUES>]);
        $sql = new Sql($this->dbAdapter);
        $stmt = $sql->prepareStatementForSqlObject($action);
        $result = $stmt->execute();

        $action1 = new Insert('OTHER TABLE NAME');
        $action1->values([OTHER VALUES]);
        $sql1 = new Sql($this->dbAdapter);
        $stmt1   = $sql1->prepareStatementForSqlObject($action1);
        $result1 = $stmt1->execute();
        ...
}

There are a couple more cycles of $action#, $sql#, $stmt#, $result#.

How can I avoid these repetitive cycles?

  • 写回答

1条回答 默认 最新

  • dpdt79577 2016-03-05 08:04
    关注

    To avoid duplicate code create an additional method, let's call it insertIntoTable(). This method will be an auxiliary function for inserting data into a certain table:

    public function save(OrganizationInterface $organization) {
            $result = $this->insertIntoTable('TABLE NAME', $values);
    
            $result1 = $this->insertIntoTable('OTHER TABLE NAME', $values1);
            ...
    }
    
    private function insertIntoTable($tableName = "", $values) {
            $action = new Insert($tableName);
            $action->values($values);
            $sql = new Sql($this->dbAdapter);
            $stmt = $sql->prepareStatementForSqlObject($action);
            $result = $stmt->execute();
    
            return $result;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。