English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Utilisation et exemple de la fonction PHP mysqli_stmt_fetch()

PHP MySQLi Référence Manuel

La fonction mysqli_stmt_fetch() extrait les résultats de l'instruction préparée dans les variables liées.

définition et utilisation

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.

syntaxe

mysqli_stmt_fetch($stmt);

paramètre

numéroparamètres et explications
1

stmt(nécessaire)

C'est l'objet représentant l'instruction préparée.

valeur de retour

Si les données sont obtenues, la fonction PHP mysqli_stmt_fetch() retourneraTRUE;如果出现错误,则返回FALSE;如果结果中没有更多行,则返回NULL

PHP版本

此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。

Exemple en ligne

以下示例演示了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

Exemple en ligne

在面向对象风格中,此函数的语法为$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

Exemple en ligne

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:

Exemple en ligne

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

PHP MySQLi Référence Manuel