验证mysql select查询已成功处理

ruoxqz4g  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(295)

我尝试的是验证select查询是否成功处理。使用db事务,我们可以验证插入、更新和删除
如下图所示

$this->db->trans_begin();
//query
if($this->db->trans_status() == false){                 
     return ['error' => 1, 'message' => 'Error massage'];          
}

但它不适用于select查询。有没有其他方法来验证这一点。
实际上,我的select查询在场景中是这样的

SELECT (amount1+ 10 / 100) FROM test_table

上述查询中的公式(amount1+10/100)将从用户输入中解码。有时用户输入的错误信息可能是这样的。
(数量1++10/100)
因此,此时select查询将不会执行。

6mzjoqzu

6mzjoqzu1#

@sintakonte我提到的用户输入是来自公式生成器的公式。所以最后我做了一个简单的技巧来验证查询(公式)。使用select查询对表进行插入或更新。在我的场景中,一旦从select查询得到结果,我就必须更新表中的一列。

$this->db->trans_begin();
$this->db->query("UPDATE table2 
                  JOIN ( 
                      SELECT (amount1+ 10 / 100) AS amnt, empID FROM test_table
                  ) AS calculationTB
                  ON calculationTB.empID = table2.empID AND 
                  SET fnTB.ssoEmployer=calculationTB.amnt");

if($this->db->trans_status() == false){                 
   return ['error' => 1, 'message' => 'Error massage'];          
}

$this->db->trans_commit();

相关问题