Failed to get result in Multi MYSQL query statement

== SOLVED ==

I get this request from the following message:

How to get id of last updated row in MySQL?

I tried this on phpMyAdmin and saw the result that I wanted, but could not extract it.

$query = "SET @order_id := '', @order_token := '', @order_param := ''; UPDATE transaction set `ts_status` = 'completed', `ts_remarks` = '', `tsid` = (SELECT @order_id := tsid), `token` = (SELECT @order_token := token), `param` = (SELECT @order_param := param) WHERE `token` = '503cd5c095fa942dbdfe72b2f4302edf' LIMIT 1; SELECT @order_id as order_id, @order_token as order_token,  @order_param as order_param";

if($result = $con->query($query)){
  $row = $result->fetch_array();
} else {
 echo 'no result';
}

It returns "no result"

enter image description here

Please inform.

== SOLUTION ==

if (!$con->multi_query($query)) {
    echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $con->store_result()) {
        $row = $res->fetch_all(MYSQLI_ASSOC);
        $res->free();
    }
} while ($con->more_results() && $con->next_result());
echo '<pre>';
print_r($row);
echo '</pre>';
+4
source share
1 answer

Try to make one request for each operator. One for SET, one for UPDATE, one for SELECT.

ETA: This will not work due to SET, I think. You need to use multi_query .

+1
source

Source: https://habr.com/ru/post/1655701/


All Articles