使用下面的示例,什么时候可以关闭连接而不会丢失数据?
通常我在将局部变量设置为绑定结果后执行此操作,这是最早的吗?
我知道这并不重要,因为脚本完成后连接已关闭,我只是想知道何时不再使用连接。
$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);
后立即关闭,因为在此之后您不需要它。