我最早什么时候可以关闭我的 mysqli 连接


When is the earliest I can close my mysqli connection?

使用下面的示例,什么时候可以关闭连接而不会丢失数据?
通常我在将局部变量设置为绑定结果后执行此操作,这是最早的吗?

我知道这并不重要,因为脚本完成后连接已关闭,我只是想知道何时不再使用连接。

$conn = new mysqli($host, $user, $password, $database) or die('Error ' . mysqli_error($link));
$userID = json_decode(file_get_contents('php://input'), true)["userID"];
$sql = "SELECT name
          FROM users
         WHERE id = ?";
$stmt = mysqli_prepare($conn, $sql);
if ($stmt) {
  mysqli_stmt_bind_param($stmt, 'i', $userID);
  if (mysqli_stmt_execute($stmt)) {
    mysqli_stmt_store_result($stmt);
    // here?
    if (mysqli_stmt_num_rows($stmt) > 0) {
      mysqli_stmt_bind_result($stmt, $_name);
      // here?
      mysqli_stmt_fetch($stmt);
      // here?
      $name = $_name;
      mysqli_stmt_close($stmt); // Where I currently close it
      if (!empty($name)) {
        echo '{"name": ' . $name . '}';
      } else {
        echo '{"name": "Anonymous" }';
      }
    }
  }
}

当不再需要连接时,应关闭连接,否则将不执行其他mysqli函数。

在您的情况下,它可以在mysqli_stmt_fetch($stmt);后立即关闭,因为在此之后您不需要它。