English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La fonction mysqli_stmt_fetch() extrait les résultats de l'instruction préparée dans les variables liées.
Vous pouvez créer une instruction préparée avec les marqueurs de paramètres (「?」) (si des valeurs sont présentes) en utilisant la fonction mysqli_prepare(). Après l'instruction préparée, il est nécessaire d'utilisermysqli_stmt_bind_param()relie les valeurs aux paramètres de l'instruction créée.
De la même manière, vous pouvez utiliser la fonction mysqli_stmt_bind_result() pour lier les colonnes du jeu de résultats de l'instruction aux variables nécessaires.
Si l'appel a été effectuémysqli_stmt_fetch();La fonction, après lier les colonnes, extrait les colonnes des résultats de l'instruction dans les variables spécifiées.
mysqli_stmt_fetch($stmt);
numéro | paramètres et explications |
---|---|
1 | stmt(nécessaire) C'est l'objet représentant l'instruction préparée. |
Si les données sont obtenues, la fonction PHP mysqli_stmt_fetch() retourneraTRUE;如果出现错误,则返回FALSE;如果结果中没有更多行,则返回NULL。
此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。
以下示例演示了mysqli_stmt_fetch();函数的用法(面向过程风格),使用预处理语句将结果中的值绑定到变量:
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, Nom_de_Prenom VARCHAR(255), Nom_de_Famille VARCHAR(255), Lieu_de_Naissance VARCHAR(255), Pays VARCHAR(255))"); print("Création de la table.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); print("插入记录.....\n"); //检索表的内容 $stmt = mysqli_prepare($con, "SELECT * FROM myplayers"); //Exécuter l'instruction mysqli_stmt_execute($stmt); //Lié les valeurs du résultat aux variables mysqli_stmt_bind_result($stmt, $id, $fname, $lname, $pob, $country); while (mysqli_stmt_fetch($stmt)) { print("Id: ".$id."\n"); print("fname: ".$fname."\n"); print("lname: ".$lname."\n"); print("pob: ".$pob."\n"); print("country: ".$country."\n"); print("\n"); } //Fin de l'instruction mysqli_stmt_close($stmt); //Fermer la connexion mysqli_close($con); ?>
Résultat de la sortie
Créer une table..... 插入记录..... Id: 1 fname: Sikhar lname: Dhawan pob: Delhi country: India Id: 2 fname: Jonathan lname: Trott pob: CapeTown country: SouthAfrica
在面向对象风格中,此函数的语法为$stmt-> fetch();。以下是面向对象风格中此函数的示例,使用预处理语句将变量绑定到结果集:
<?php //建立连接 $con = new mysqli("localhost", "root", "password", "mydb"); $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT"); $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27))"); print("Création de la table.....\n"); $stmt = $con -> prepare("SELECT * FROM Test WHERE Nom IN(?, ?)"); $stmt -> bind_param("ss", $name1, $name2); $name1 = 'Raju'; $name2 = 'Rahman'; print("L'enregistrement a été supprimé.....\n"); //Exécuter l'instruction $stmt->execute(); //Lier les variables au jeu de résultats $stmt->bind_result($name, $age); while ($stmt->fetch()) { print("Nom: ",$name,"\n"); print("Âge: ",$age,"\n"); } //Fin de l'instruction $stmt->close(); //Fermer la connexion $con->close(); ?>
Résultat de la sortie
Créer une table..... L'enregistrement a été supprimé..... Nom: Raju Âge: 25 Nom: Rahman Âge: 30
L'exemple suivant utilise les fonctions mysqli_stmt_bind_result() et mysqli_stmt_fetch() pour obtenir les résultats de la requête DESCRIBE-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, Nom_de_Prenom VARCHAR(255), Nom_de_Famille VARCHAR(255), Lieu_de_Naissance VARCHAR(255), Pays VARCHAR(255))"); print("Création de la table.....\n"); //Description de la table $stmt = mysqli_prepare($con, "DESC myplayers"); //Exécuter l'instruction mysqli_stmt_execute($stmt); //Lié les valeurs du résultat aux variables mysqli_stmt_bind_result($stmt, $field, $type, $null, $key, $default, $extra); while (mysqli_stmt_fetch($stmt)) { print("Champ: ",$field,"\n"); print("Type: ",$type,"\n"); print("Vide: ",$null,"\n"); print("Clé: ",$key,"\n"); print("Par défaut: ". $default."\n"); print("Extra: ". $extra."\n"); print("\n"); } //Fin de l'instruction mysqli_stmt_close($stmt); //Fermer la connexion mysqli_close($con); ?>
Résultat de la sortie
Créer une table..... Champ: ID Type: int(11) Null: OUI Clé: Par défaut: Extra: Champ: Prénom Type: varchar(255) Null: OUI Clé: Par défaut: Extra: Champ: Nom_de_famille Type: varchar(255) Null: OUI Clé: Par défaut: Extra: Champ: Lieu_de_naissance Type: varchar(255) Null: OUI Clé: Par défaut: Extra: Champ: Pays Type: varchar(255) Null: OUI Clé: Par défaut: Extra:
L'exemple suivant utilise les fonctions mysqli_stmt_bind_result() et mysqli_stmt_fetch() pour obtenir les résultats de la requête SHOW TABLES, renvoyant toutes les tables du base de données actuelle :
<?php $con = mysqli_connect("localhost", "root", "password"); //Sélectionner la base de données mysqli_query($con, "CREATE DATABASE NewDatabase"); mysqli_select_db($con, "NewDatabase"); //Créer une table mysqli_query($con, "CREATE TABLE test1(Nom VARCHAR(255), Âge INT)"); mysqli_query($con, "CREATE TABLE test2(Nom VARCHAR(255), Âge INT)"); mysqli_query($con, "CREATE TABLE test3(Nom VARCHAR(255), Âge INT)"); print("Tables créées.....\n"); //Afficher les tables $stmt = mysqli_prepare($con, "SHOW TABLES"); //Exécuter l'instruction mysqli_stmt_execute($stmt); //Lié les valeurs du résultat aux variables mysqli_stmt_bind_result($stmt, $table_name); print("Toutes les tables du base de données actuelle: \n"); while (mysqli_stmt_fetch($stmt)) { print($table_name."\n"); } //Fin de l'instruction mysqli_stmt_close($stmt); //Fermer la connexion mysqli_close($con); ?>
Résultat de la sortie
Tables créées..... Toutes les tables du base de données actuelle: test1 test2 test3