插入新数据之前删除表数据

110690

我有这两个表,表A和表B。在更新表BI之前,要在插入新表之前删除它的数据。

我有这个查询,它将删除该表中的数据,并在成功删除旧记录后插入一个新的数据。它正在插入值,但并没有删除旧的值,因此最终复制了一些我之前已插入的新ID。我用以下代码尝试了它:

 public function editDiscount(){    
    foreach ($this->searchFields as $field => $value) :
        if($field == 'KEY'){
            $key = $value;
        } else if($field == 'NAME'){
            $discountName = $value;
        } else if($field == 'CODE'){ 
            $discountCode = $value;
        } else if($field == 'DESC'){
            $discountDesc = $value;
        }else if($field == 'TYPE'){
            $discountType = $value;
        }else if($field == 'TRANS'){
            $discountTransaction = $value;
        }else if($field == 'EXPTYPE'){
            $expiration = $value;
        }else if($field == 'START'){
            $expStartDate = $value;
        }else if($field == 'END'){
            $expEndDate = $value;
        }else if($field == 'VALUE'){
            $discountValue = $value;
        }else if($field == 'PRODKEY'){
            $productId= $value;
        } 
    endforeach;    

    $discount = VlDiscount::query()
            ->andWhere("autokey =?1")
            ->andWhere("app_id =?2")
            ->bind(array(1=>$key,2=>$this->session->get('appId')))
            ->execute();

    if($discount->count() != 0){

        $discountUpdate = VlDiscount::findFirst($key);
        $discountUpdate->discountName           = $discountName;
        $discountUpdate->discountCode           = $discountCode;
        $discountUpdate->discountDesc           = $discountDesc;
        $discountUpdate->discountType           = $discountType;
        $discountUpdate->discountTransaction    = $discountTransaction;
        $discountUpdate->expiration             = $expiration;
        $discountUpdate->expStartDate           = $expStartDate;
        $discountUpdate->expEndDate             = $expEndDate;
        $discountUpdate->discountValue          = $discountValue;



        if($discountUpdate->update() == false){
            $devMessage = array();
            foreach ($discountUpdate->getMessages() as $key){
                $devMessage[] =  $key->getMessage();
            }
            return $this->respond(array(
                    'userMessage' => 'Failed',
                    'devMessage' => $devMessage,
                    'more' => 'Failed to update. One or more fields failed on validation.'));
            }else if ($discountTransaction == 'p'){

                foreach ($this->searchFields as $field => $value) :
                if($field == 'PRODKEY'){
                    $productId = $value;
                }
                endforeach;

                $exs = explode('|',$productId);
                $deleteErrors = 0;
                foreach ($exs as $xx) {
                    $deleteproductDiscount = VlDiscountProduct::query()
                    ->andWhere("discountId =?1")
                    ->andWhere("app_id =?2")
                    ->bind(array(1=>(int)$xx,2=>$this->session->get('appId')))
                    ->execute();

                    foreach($productdiscountDelete as $cat){
                        $productsDelete = VlDiscountProduct::findFirst($cat->$discountUpdate->autokey);
                        if ($deleteproductDiscount != false) {
                            if ($productsDelete->delete() == false) {
                                $deleteErrors++;
                                $devMessage = array();
                                foreach ($deleteproductDiscount->getMessages() as $key){
                                    $devMessage[] =  $key->getMessage();
                                }
                            }
                        }
                    }
                    unset($deleteproductDiscount);
                }

                if($deleteError == 0){
                    $exp = explode('|',$productId);

                    foreach ($exp as $item){

                        $productDiscount = new VlDiscountProduct();
                        $productDiscount->discountId    = $discountUpdate->autokey;
                        $productDiscount->productId     = $item;
                        $productDiscount->app_id        = $this->session->get('appId');

                        if($productDiscount->create() == false){
                            $devMessage = array();
                            foreach ($productDiscount->getMessages() as $key){
                                $devMessage[] =  $key->getMessage();
                            }
                            return $this->respond(array(
                                    'userMessage' => 'Failed',
                                    'devMessage' => $devMessage,
                                    'more' => 'Failed to create. One or more fields failed on validation.'
                            ));
                        }

                    }
                    return $this->respond(array('userMessage' => 'OK'));
                }else{
                    return $this->respond(array(
                            'userMessage' => 'Failed',
                            'devMessage' => $devMessage,
                            'more' => 'Failed to delete. One or more fields produced an error.'
                    ));
                }
                return $this->respond(array(
                        'userMessage' => 'Failed',
                        'devMessage' => 'Cannot find user information',
                        'more' => 'Failed to update. One or more fields failed on validation.'));   
                }
            }
        }
纳马拉

您正在检查if($deleteError == 0){而不是if($deleteErrors == 0){

更新

整个foreach语句已关闭。

foreach($productdiscountDelete as $cat){
    $productsDelete = VlDiscountProduct::findFirst($cat->$discountUpdate->autokey);
        if ($deleteproductDiscount != false) {
            if ($productsDelete->delete() == false) {
                $deleteErrors++;
                $devMessage = array();
                foreach ($deleteproductDiscount->getMessages() as $key){
                    $devMessage[] =  $key->getMessage();
                }
            }
        }
}

您永远不会定义$productdiscountDelete,因此它永远不会进入此foreach循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在插入新数据之前截断表

来自分类Dev

如何在插入表之前删除表中的所有数据

来自分类Dev

插入表之前检查数据是否存在

来自分类Dev

查询插入到新表中之前需要删除的条件

来自分类Dev

查询插入到新表中之前需要删除的条件

来自分类Dev

在mysql中插入数据而不是删除表

来自分类Dev

在MYSQL中插入数据之前删除多余的字符?

来自分类Dev

在插入数据库之前删除数组的重复值

来自分类Dev

在使用SqlBulkCopy插入数据表之前,如何验证数据表的数据

来自分类Dev

PostgreSQL-删除一个小时以上的数据,然后将新数据插入同一表

来自分类Dev

在将数据插入Django中的表之前检查条件

来自分类Dev

SSIS Access数据库-在插入新记录之前,需要在我的目标Access数据库表上清空表

来自分类Dev

SQL从2表插入数据到新表

来自分类Dev

在从服务器数据更新数据之前,是否应该从表sqlite中删除数据?

来自分类Dev

相关表插入数据

来自分类Dev

将数据插入表

来自分类Dev

创建表并插入数据

来自分类Dev

将数据插入到已经存在的表的新列中

来自分类Dev

PHP不会在表中插入新数据

来自分类Dev

将数据插入WordPress插件中的新表中

来自分类Dev

SQL Server使用新的主键插入表数据脚本

来自分类Dev

将新数据插入表时的语法错误

来自分类Dev

在将新数据插入表中时发出通知

来自分类Dev

Hive - 创建新表并将更新的数据插入其中

来自分类Dev

如何从表中拆分数据并插入新关系?

来自分类Dev

在数据透视表Laravel中删除行并插入行

来自分类Dev

如何使用VB.NET删除表中的所有数据并在Access数据库中插入新记录?

来自分类Dev

将2个Hive外部表的数据插入带有新列的新外部表中

来自分类Dev

在运行复制数据活动之前,从目标表中删除数据

Related 相关文章

  1. 1

    在插入新数据之前截断表

  2. 2

    如何在插入表之前删除表中的所有数据

  3. 3

    插入表之前检查数据是否存在

  4. 4

    查询插入到新表中之前需要删除的条件

  5. 5

    查询插入到新表中之前需要删除的条件

  6. 6

    在mysql中插入数据而不是删除表

  7. 7

    在MYSQL中插入数据之前删除多余的字符?

  8. 8

    在插入数据库之前删除数组的重复值

  9. 9

    在使用SqlBulkCopy插入数据表之前,如何验证数据表的数据

  10. 10

    PostgreSQL-删除一个小时以上的数据,然后将新数据插入同一表

  11. 11

    在将数据插入Django中的表之前检查条件

  12. 12

    SSIS Access数据库-在插入新记录之前,需要在我的目标Access数据库表上清空表

  13. 13

    SQL从2表插入数据到新表

  14. 14

    在从服务器数据更新数据之前,是否应该从表sqlite中删除数据?

  15. 15

    相关表插入数据

  16. 16

    将数据插入表

  17. 17

    创建表并插入数据

  18. 18

    将数据插入到已经存在的表的新列中

  19. 19

    PHP不会在表中插入新数据

  20. 20

    将数据插入WordPress插件中的新表中

  21. 21

    SQL Server使用新的主键插入表数据脚本

  22. 22

    将新数据插入表时的语法错误

  23. 23

    在将新数据插入表中时发出通知

  24. 24

    Hive - 创建新表并将更新的数据插入其中

  25. 25

    如何从表中拆分数据并插入新关系?

  26. 26

    在数据透视表Laravel中删除行并插入行

  27. 27

    如何使用VB.NET删除表中的所有数据并在Access数据库中插入新记录?

  28. 28

    将2个Hive外部表的数据插入带有新列的新外部表中

  29. 29

    在运行复制数据活动之前,从目标表中删除数据

热门标签

归档