oujood.com

thread_id() et mysqli_thread_id() : Comment obtenir l'identifiant de thread MySQL

Obtenez l'identifiant de thread de la connexion MySQL actuelle avec les fonctions thread_id() et mysqli_thread_id().

Définition et utilisation: Fonctions thread_id() et mysqli_thread_id() en PHP

PHP Version: 5+

Les fonctions thread_id() et mysqli_thread_id() sont utilisées pour obtenir l'identifiant de thread de la connexion MySQL actuelle. Cet identifiant peut être utilisé pour tuer une connexion MySQL à l'aide de la fonction kill().

Syntaxe des fonctions

thread_id();

mysqli_thread_id(mysqli $link);

La fonction thread_id() peut être utilisée sans arguments. La fonction mysqli_thread_id() prend un argument, qui est un objet mysqli représentant la connexion MySQL.

Syntaxes orientées objet et procédurales

Les deux fonctions sont disponibles en syntaxe orientée objet et procédurale.

Syntaxe orientée objet

$mysqli = new mysqli('seveur', 'utilisateur, 'motDePasse', 'ma_base_de_données');

$thread_id = $mysqli->thread_id();

Syntaxe procédurale

$link = mysqli_connect('seveur', 'utilisateur, 'motDePasse', 'ma_base_de_données');

$thread_id = mysqli_thread_id($link);

Valeurs possibles et paramètres

La fonction thread_id() peut renvoyer les valeurs suivantes :

  • 0 si la connexion est introuvable ou n'est pas connectée.
  • 1 si la connexion est connectée mais que l'identifiant de thread n'est pas encore disponible.
  • Un nombre entier positif représentant l'identifiant de thread.

La fonction mysqli_thread_id() prend un argument, qui est un objet mysqli représentant la connexion MySQL. Si la connexion n'est pas valide, la fonction renvoie FALSE.

Exemples pratiques

Exemple orienté objet

Exemple :       Copier le code

<?php

$mysqli = new mysqli('seveur', 'utilisateur, 'motDePasse', 'ma_base_de_données');

// Obtenez l'identifiant de thread
$thread_id = $mysqli->thread_id();

// Affichez l'identifiant de thread
echo "L'identifiant de thread est $thread_id";
?>

Exemple procédural

Exemple :       Copier le code

<?php

$link = mysqli_connect('seveur', 'utilisateur, 'motDePasse', 'ma_base_de_données');

// Obtenez l'identifiant de thread
$thread_id = mysqli_thread_id($link);

// Affichez l'identifiant de thread
echo "L'identifiant de thread est $thread_id";
?>

Voici quelques cas d'utilisation

Cas d'utilisation 1:

Objectif: Obtenir le thread ID de la connexion actuelle.

Approche orientée objet:

Exemple :       Copier le code

<?php

class MyClass
{
    public function getThreadId()
    {
        $mysqli = new mysqli("localhost", "root", "", "teste");
        $threadId = $mysqli->thread_id;

        return $threadId;
    }
}

$myClass = new MyClass();
$threadId = $myClass->getThreadId();

echo "Le thread ID est : " . $threadId;
?>

Output:


Le thread ID est : 1

Approche procédurale:

Exemple :       Copier le code

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "teste";

$mysqli = new mysqli($servername, $username, $password, $dbname);
$threadId = mysqli_thread_id($mysqli);

echo "Le thread ID est : " . $threadId;
?>

Output:


Le thread ID est : 1

Cas d'utilisation 2:

Objectif: Utiliser le thread ID pour tuer une connexion.

Approche orientée objet:

Exemple :       Copier le code

<?php

class MyClass
{
    public function killConnection()
    {
        $mysqli = new mysqli("localhost", "root", "", "teste");
        $threadId = $mysqli->thread_id;

        $mysqli->kill($threadId);
    }
}

$myClass = new MyClass();
$myClass->killConnection();
?>

Output:


La connexion a été tuée avec succès

Approche procédurale:

Exemple :       Copier le code

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "teste";

$mysqli = new mysqli($servername, $username, $password, $dbname);
$threadId = mysqli_thread_id($mysqli);

mysqli_kill($mysqli, $threadId);
?>

Output:


La connexion a été tuée avec succès

Cas d'utilisation 3:

Objectif: Utiliser le thread ID pour suivre l'activité d'une connexion.

Approche orientée objet:

Exemple :       Copier le code

<?php

class MyClass
{
    public function trackConnection()
    {
        $mysqli = new mysqli("localhost", "root", "", "teste");
        $threadId = $mysqli->thread_id;

        while (true) {
            // Effectuer des opérations sur la connexion

            echo "Le thread ID est : " . $threadId;

            sleep(1);
        }
    }
}

$myClass = new MyClass();
$myClass->trackConnection();
?>

Output:


Le thread ID est : 1
Le thread ID est : 1
Le thread ID est : 1
...

Approche procédurale:

Exemple :       Copier le code

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "teste";

$mysqli = new mysqli($servername, $username, $password, $dbname);
$threadId = mysqli_thread_id($mysqli);

while (true) {
    // Effectuer des opérations sur la connexion

    echo "Le thread ID est : " . $threadId;

    sleep(1);
}
?>

Output:


Le thread ID est : 1
Le thread ID est : 1
Le thread ID est : 1
...

Astuces et conseils d'utilisation pratique

  • La fonction thread_id() ne devrait être utilisée que lorsque cela est nécessaire. En effet, l'appel de cette fonction peut avoir un impact sur les performances.
  • Si vous devez tuer une connexion MySQL, il est préférable d'utiliser la fonction mysqli_kill(), qui prend l'identifiant de thread en argument. Cela permet de tuer la connexion spécifique que vous souhaitez.



Voir aussi nos tutoriel :

Balise embed

Définit un conteneur pour une application externe (non HTML)

fonction sha1_fille, sha1_file

Calcule le sha1 d'un fichier

Bordures en CSS3

Créer des bords arrondis, ajouter une ombre aux boîtes et utiliser une image comme une bordure et sans l'aide d'un programme de conception, comme Photoshop.