使用下面的例子,什么时候最早可以关闭连接而不丢失数据?
通常我在将局部变量设置为绑定结果后执行此操作,这是最早的吗?
我知道这并不重要,因为在脚本完成时连接已关闭,我只是想知道连接何时不再使用。
$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" }';
}
}
}
}
答案 0 :(得分:1)
当不再需要连接或不执行其他mysqli
功能时,应关闭连接。
在你的情况下,它可以在mysqli_stmt_fetch($stmt);
之后关闭,因为在此之后你不需要它。