I am trying to do multiple queries in one call, so I organized my code as below:
try{
$query = $this->conn->begin_transaction();
$query = $this->conn->prepare("INSERT INTO table1(xx, xxx, xxxx, xxxxx, xxxxxx, xxxxxxx, xxxxxxxx, xxxxxxxxx, xxxxxxxxxx, xxxxxxxxxxx, xxxxxxxxxxx)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$query->bind_param("sssssssssss", $var1, $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var8, $var9, $var10);
$result1 = $query->execute();
$var1= $xxx- $xxxx;
$query = $this->conn->prepare("UPDATE table2 set xxx = ? WHERE xxxx = ?");
$query->bind_param("ss", $var1, $var2);
$result2 = $query->execute();
$query = $this->conn->prepare("INSERT INTO table3 (xx, xxx, xxxx, xxxxx, xxxxxx, xxxxxxx)
VALUES (?, ?, ?, ?, ?, ?) ");
$query->bind_param("ssssss", $var1, $var2, $var3, $var4, $var5, $var6);
$result3 = $query->execute();
$query = $this->conn->commit();
if($result1 == true AND $result2 == true AND $result3 == TRUE){
return "Success";
}
exit();
}catch (Exception $e){
$this->conn->rollback();
throw $e;
}
Not sure if this is the correct way of doing it, but I don't want to insert/update records in the database if all queries are not true. It would help me a lot if someone can go through the code and tell me his thoughts, this works fine but I am not sure if this is a good approach.