Я написал этот код:
$stmt = $link->prepare($statement_string); // [...] $result_m = $stmt->result_metadata(); if ($result_m) { $stmt->store_result(); // [...] $stmt->free_result(); $result_m->free(); }
Правильно ли этот код?
Я прочитал doc mysqli-stmt.result-metadata и mysqli-result.free doc . Я также прочитал этот пост: … free-mysql-result-after-storing-it, но я не нашел ответа.
РЕДАКТИРОВАТЬ :
Я хочу знать: будет ли $stmt->free_result();
просто освободите выделение памяти, сделанное $stmt->store_result();
или явно освободить память объекта mysqli_result
построенного с помощью $stmt->result_metadata();
?
согласно этим страницам:
MySQLi свободных от результата
MySQLi-STMT-свободно результат
метаданные и фактические данные оператора (строки) – это разные объекты, поэтому вы должны очищать их отдельно.
точно так же, как в коде.