Php Mysql更新查询运行两次
下面的查询在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中提到的那样分别执行它们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):使用语句格式写入二
$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));
}