Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql更新查询运行两次_Php_Mysql_Codeigniter_Pdo - Fatal编程技术网

Php Mysql更新查询运行两次

Php Mysql更新查询运行两次,php,mysql,codeigniter,pdo,Php,Mysql,Codeigniter,Pdo,下面的查询在mysql终端、工作台和php中以不同的方式执行。 mysql终端和workbench给出了相同的结果,但php给出了不同的结果(看起来查询执行了2次)。 我想从数量上减少1件。但在php中(codeigniter,pdo connection),它从数量中减去2项(总是我提到的两倍)。 注意:我很确定我不会执行这个查询两次(在循环中) 提前谢谢 更新: 从终端-> 查询正常,1行受影响,2条警告(0.03秒) 匹配的行:1已更改:1警告:0 注意(代码1592):使用语句格式写入二

下面的查询在mysql终端、工作台和php中以不同的方式执行。 mysql终端和workbench给出了相同的结果,但php给出了不同的结果(看起来查询执行了2次)。 我想从数量上减少1件。但在php中(codeigniter,pdo connection),它从数量中减去2项(总是我提到的两倍)。 注意:我很确定我不会执行这个查询两次(在循环中)

提前谢谢

更新:

从终端->

查询正常,1行受影响,2条警告(0.03秒) 匹配的行:1已更改:1警告:0

注意(代码1592):使用语句格式写入二进制日志的不安全语句,因为BINLOG_format=语句。该语句不安全,因为它使用了LIMIT子句。这是不安全的,因为无法预测包含的行集。 注意(代码1592):使用语句格式写入二进制日志的不安全语句,因为BINLOG_format=语句。在从另一个表中选择后写入具有自动增量列的表的语句是不安全的,因为检索行的顺序决定将写入哪些行(如果有)。此顺序无法预测,并且可能在主设备和从设备上有所不同

不知道。 但是,请尝试按照上面url中提到的那样分别执行它们

        $mod_select = $this->db->mod_select("SELECT
       tsk.id_stock, tsk.qty
   FROM
       tbl_store ts
   inner join tbl_stock tsk ON ts.id_store = tsk.id_store
   where
       ts.id_physical_place = " . $all_userdata['id_physical_place'] . "
           and ts.store_status = 1
           and tsk.stock_status = 1
           and tsk.id_products = " . $value['itm'] . " limit 1");
        if ($mod_select[0]->qty >= $value['qty']) {
            $this->db->update('tbl_stock', array('qty' => $mod_select[0]->qty - $value['qty']), array('id_stock' => $mod_select[0]->id_stock));
        }

希望这有帮助。

向您展示相关的php代码。我想你只是简单地运行了两次php代码。应该是php问题吗?php代码在哪里?如果没有php代码,为什么要标记php?我不理解$dataArray['product\u Name\u id.'.$index]的用法……它在那里的实际功能是什么?
        $mod_select = $this->db->mod_select("SELECT
       tsk.id_stock, tsk.qty
   FROM
       tbl_store ts
   inner join tbl_stock tsk ON ts.id_store = tsk.id_store
   where
       ts.id_physical_place = " . $all_userdata['id_physical_place'] . "
           and ts.store_status = 1
           and tsk.stock_status = 1
           and tsk.id_products = " . $value['itm'] . " limit 1");
        if ($mod_select[0]->qty >= $value['qty']) {
            $this->db->update('tbl_stock', array('qty' => $mod_select[0]->qty - $value['qty']), array('id_stock' => $mod_select[0]->id_stock));
        }