mysqli::close

mysqli_close

(PHP 5, PHP 7, PHP 8)

mysqli::close -- mysqli_close — Cierra una conexión

Descripción

Estilo orientado a objetos

public function mysqli::close(): true

Estilo procedimental

function mysqli_close(mysqli $mysql): true

Cierra la conexión especificada por el parámetro link.

Las conexiones MySQL no persistentes y los conjuntos de resultados serán cerrados automáticamente cuando sus objetos sean destruidos. Cerrar explícitamente las conexiones abiertas y liberar los conjuntos de resultados es opcional. Sin embargo, es una buena idea cerrar la conexión tan pronto como el script termine de realizar todas sus operaciones de base de datos, si aún tiene mucho procesamiento por hacer después de haber recuperado los resultados.

Parámetros

mysql

Solo estilo procedimental: Un objeto mysqli devuelto por mysqli_connect() o mysqli_init()

Valores devueltos

Retorna siempre true.

Historial de cambios

Versión Descripción
8.0.0 Esta función ahora siempre devuelve true. Anteriormente, devolvía false en caso de fallo.

Ejemplos

Ejemplo #1 Ejemplo de mysqli::close()

Estilo orientado a objetos

<?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");

/* Cerrar la conexión tan pronto como ya no sea necesaria */
$mysqli->close();

foreach ($result as $row) {
    /* Procesamiento de los datos recuperados de la base de datos */
}

Estilo procedimental

<?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");

/* Cerrar la conexión tan pronto como ya no sea necesaria */
mysqli_close($mysqli);

foreach ($result as $row) {
    /* Procesamiento de los datos recuperados de la base de datos */
}

Notas

Nota:

mysqli_close() no cierra las conexiones persistentes. Para más detalles, ver la página del manual sobre las conexiones persistentes.

Véase también

+add a note

User Contributed Notes 2 notes

up
0
user123 at gmail dot com
6 days 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