mysqli сбрасывает affected_rows при выходе из функции.

AnrDaemon

Продвинутый новичок
Есть довольно простенький враппер над mysqli.
В предельно упрощённом виде выглядит как-то так:

PHP:
<?php

function mysql_conn(?\mysqli $db = null): \mysqli {
    static $conn;

    return $conn ?? $conn = $db;
}

function mysql_query(\mysqli $mysqli, string $sql, array $params = []): \mysqli_result {
    $stmt = $mysqli->prepare($sql);
    if ($params) {
        $bi = $stmt->bind_param(str_repeat("s", count($params)), ...array_values($params));
    }
    $ex = $stmt->execute();
    $res = $stmt->get_result();
    return $res;
}

$res = mysql_query(mysql_conn(), "DELETE FROM t1 WHERE t1.id = ?", [1]);
var_dump(mysql_conn()->affected_rows);
И вот как только мы выходим из mysql_query, mysql_conn()->affected_rows становится -1…

Какого… органа?
 
Сверху