Maison >développement back-end >Problème PHP >procédure stockée de requête php

procédure stockée de requête php

王林
王林original
2023-05-28 20:35:06727parcourir

En PHP, il est parfois nécessaire d'appeler des procédures stockées dans la base de données pour effectuer des opérations spécifiques. Dans ce cas, vous devez utiliser l'intégration de l'extension de base de données PHP pour interagir avec la base de données. Cet article explique comment interroger des procédures stockées en PHP.

Étape 1 : Connectez-vous à la base de données

Tout d'abord, vous devez vous assurer que vous êtes correctement connecté à la base de données. La connexion à la base de données peut être effectuée à l'aide de l'extension mysqli en PHP. Une fois la connexion établie, vous devez sélectionner une base de données spécifique. Ceci peut être réalisé en appelant la fonction mysqli_select_db(). Voici un exemple :

$username = "yourusername";
$password = "yourpassword";
$hostname = "localhost";
$database = "yourdatabase";

$connection = mysqli_connect($hostname, $username, $password);
mysqli_select_db($connection, $database);

Dans le code ci-dessus, les variables $username et $password stockent respectivement le nom d'utilisateur et le mot de passe de la base de données. La variable $hostname stocke le nom d'hôte de la base de données. La variable $database stocke le nom de la base de données. Utilisez la fonction mysqli_connect() lors de la connexion à la base de données et stockez le résultat dans la variable $connection. Utilisez ensuite la fonction mysqli_select_db() pour sélectionner la base de données.

Étape 2 : interroger la procédure stockée

Lors de l'interrogation de la procédure stockée en PHP, vous devez utiliser la fonction mysqli_prepare() pour préparer la requête et stocker le résultat dans une variable. Utilisez la commande CALL dans l'instruction de requête pour appeler la procédure stockée. Par exemple :

$userid = 1;
$stmt = mysqli_prepare($connection, "CALL get_user_by_id(?)");
mysqli_stmt_bind_param($stmt, "i", $userid);
mysqli_stmt_execute($stmt);

Dans l'exemple de code ci-dessus, la variable $stmt stocke les résultats de la requête. La fonction mysqli_prepare est utilisée pour préparer les instructions de requête, où se trouve un espace réservé représentant la valeur du paramètre spécifiée ultérieurement. La valeur réelle du paramètre peut être spécifiée via la fonction mysqli_stmt_bind_param(). Le premier paramètre "i" est un spécificateur de format, indiquant un type entier, et le paramètre suivant $userid est la valeur du paramètre à transmettre. Enfin, utilisez la fonction mysqli_stmt_execute() pour exécuter la requête.

Étape 3 : Obtenir les résultats de la requête

Pour obtenir les résultats de la requête de la procédure stockée, vous devez utiliser la fonction mysqli_stmt_store_result() pour enregistrer les résultats dans la zone de cache. Utilisez ensuite la fonction mysqli_stmt_bind_result() pour lier le résultat dans une variable à utiliser dans votre code. Voici un exemple :

mysqli_stmt_store_result($stmt);
mysqli_stmt_bind_result($stmt, $col1, $col2, $col3);

while (mysqli_stmt_fetch($stmt)) {
    printf("%s %s %s
", $col1, $col2, $col3);
}

mysqli_stmt_close($stmt);
mysqli_close($connection);

Dans l'exemple de code ci-dessus, la fonction mysqli_stmt_store_result() est utilisée pour enregistrer le résultat dans la zone tampon. Utilisez ensuite la fonction mysqli_stmt_bind_result() pour lier les résultats à des variables telles que $col1, $col2, $col3, etc. pour les utiliser dans la boucle. Utilisez la fonction mysqli_stmt_fetch() dans une boucle pour parcourir l'ensemble de résultats et afficher les résultats de la requête. Enfin, utilisez la fonction mysqli_stmt_close() pour fermer l'instruction de requête et la fonction mysqli_close() pour fermer la connexion à la base de données.

Résumé

L'interrogation de procédures stockées est un moyen d'implémenter des opérations de base de données spécifiques en PHP. Lorsque vous effectuez une requête, vous devez d'abord vous assurer que vous êtes connecté à la base de données. Ensuite, utilisez la fonction mysqli_prepare() pour préparer la requête et utilisez la fonction mysqli_stmt_bind_param() pour spécifier les paramètres. Utilisez la fonction mysqli_stmt_execute() pour exécuter la requête. Ensuite, utilisez la fonction mysqli_stmt_store_result() pour enregistrer le résultat dans la zone tampon, et utilisez la fonction mysqli_stmt_bind_result() pour lier le résultat à une variable. Enfin, utilisez une boucle while pour parcourir le jeu de résultats et utilisez la fonction mysqli_stmt_fetch() pour afficher les résultats de la requête. Après avoir terminé la requête, vous devez utiliser la fonction mysqli_stmt_close() pour fermer l'instruction de requête et la fonction mysqli_close() pour fermer la connexion à la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn