PHP 8.6.0 RC3 available for testing

mysqli::close

mysqli_close

(PHP 5, PHP 7, PHP 8)

mysqli::close -- mysqli_close — 关闭先前打开的数据库连接

说明

面向对象风格

public function mysqli::close(): true

过程化风格

function mysqli_close(mysqli $mysql): true

关闭先前打开的数据库连接。

当打开的非持久 MySQL 连接和结果集的对象销毁时会自动关闭。显式关闭打开的连接和释放结果集不是必需的。但是,如果脚本在获得结果后仍有大量工作要做,那么最好在脚本执行完所有数据库操作后立即关闭连接。

参数

mysql

仅以过程化样式:由 mysqli_connect() 或 mysqli_init() 返回的 mysqli 对象。

返回值

总是返回 true。

更新日志

版本 说明
8.0.0 此函数始终返回 true。之前失败时返回 false。

示例

示例 #1 mysqli::close() 示例

面向对象风格

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

/* Close the connection as soon as it's no longer needed */
$mysqli->close();

foreach ($result as $row) {
    /* Processing of the data retrieved from the database */
}

过程化风格

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

/* Close the connection as soon as it's no longer needed */
mysqli_close($mysqli);

foreach ($result as $row) {
    /* Processing of the data retrieved from the database */
}

注释

注意:

mysqli_close() 不会关闭持久连接。更多详情,查看持久连接的相关手册页。

参见

+添加备注

用户贡献的备注 2 notes

up
0
user123 at gmail dot com
1 day ago
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php 
        include("passwd.php");
        $mysqli = mysqli_connect( $host, $user, $password, $dbname);

        if(isset($_GET['usun'])) {
            $id = $_GET['usun'];
            mysqli_query($mysqli, "DELETE FROM dane WHERE id=$id" );
            header("Location: index3.php");
            exit;

        }

        if (!$mysqli) {
            echo "Error: Unable to connect to MySQL." . PHP_EOL;
            echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
            echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
            exit;
        }

        if(isset($_POST['dodaj'])) {

            $kraj = $_POST['kraje'];
            $id = $_POST['id'];
            $nominal = $_POST['nominal'];
            $materialy = $_POST['materialy'];
            $sql = "INSERT INTO dane (kraj_id, nr_kat, nominal, stopa_id)
            VALUES ($kraj, $id, $nominal, $materialy)";

            mysqli_query($mysqli, $sql);
        }

        $result = mysqli_query($mysqli, "SELECT dane.id as id_dane, dane.*, flagi.*, materialy.* FROM dane 
        JOIN flagi on dane.kraj_id = flagi.id
        JOIN materialy on dane.stopa_id = materialy.id
        ");
        $all = mysqli_fetch_all($result, MYSQLI_ASSOC);

        echo "<table border='1' style='border-collapse: collapse'>";
        echo "<tr>
                <th>Flaga</th>
                <th>Nazwa kraju</th>
                <th>id</th>
                <th>nominał</th>
                <th>material</th>
                <th>usun</th>
              </tr>
        ";

        foreach ($all as $a ) {
            echo "<tr>";
            echo "<td><img src='../gfx/" . $a['plik'] . "' style='width: 50px;'></td>";
            echo "<td>" . $a["kraj"] . "</td>";
            echo "<td>" . $a["id_dane"] . "</td>";
            echo "<td>" . $a["nominal"] . "</td>";
            echo "<td>" . $a["nazwa"] . "</td>";
            echo "<td><a href='index3.php?usun=" . $a["id_dane"] . "'> usun </a></td>";
            echo "</tr>";
        }
            echo "<tr><td colspan='6'>DODAWANIE PONIŻEJ</td></tr>";

     
                  
$kraje = mysqli_fetch_all(mysqli_query($mysqli, "SELECT * FROM flagi"), MYSQLI_ASSOC);
$nominal = mysqli_fetch_all(mysqli_query($mysqli, "SELECT * FROM materialy"), MYSQLI_ASSOC);

echo "<form method='post'>
<tr>
    <td>Automatyczne</td>
    <td>
        <select name='kraje'>";

        foreach ($kraje as $k) {
            echo '<option value="' . $k["id"] . '">' . $k["kraj"] . '</option>';
        }

echo "</select>
    </td>
    <td>
        <input type='number' placeholder='id' name='id'>
    </td>
    <td>
        <input type='text' placeholder='nominal' name='nominal'>
    </td>
    <td>
        <select name='materialy'>";

        foreach ($nominal as $n) {
            echo '<option value="' . $n["id"] . '">' . $n["nazwa"] . '</option>';
        }

echo "</select>
    </td>
    <td>
        <button type='submit' name='dodaj'>OK</button>
    </td>
</tr>
</form>";

        echo "</table>";

    ?>
</body>
</html>
up
0
nunoandredev at gmail dot com
10 months ago
Be aware that when using multiple files that are dependent from each other, if by mistake mysqli::close is called twice, the second call will throw a Fatal Error HTTP 500 even though the page renders normally.
To Top