Manuel PHP
Précédent |  | Suivant

# mysqli_stmt_prepare

(PHP 5)

mysqli_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare -- Prépare une requête SQL pour l'exécution

## Description

Style procédural

bool mysqli_stmt_prepare ( object stmt, string query)

Style orienté objet (méthode)

class stmt {
mixed prepare ( string query)
}

mysqli_stmt_prepare() prépare la requête SQL query, pour la session de travail stmt. stmt doit avoir été alloué par mysqli_stmt_init(). La requête doit être une seule requête SQL.

> Note : Il ne faut pas ajouter de point-virgule ou de \g à la fin de la requête.

Le paramètre query peut inclure une ou plusieurs variables SQL, en utilisant des points d'interrogation (?) aux bons endroits.

> Note : Les variables SQL ne sont possibles que dans certaines clauses de la requête SQL. Par exemple, elles peuvent être placées dans des clause VALUES() d'une requête INSERT (pour spécifier une valeur à insérer), ou dans une clause de condition WHERE.

> Cependant, elles ne sont pas autorisées pour les identifiants (de tables ou de colonnes), dans les listes de colonnes d'un SELECT, ou pour spécifier des opérateurs comme =. Cette dernière restriction est liée au fait qu'il est impossible de déterminer le type. En général, les variables SQL ne sont valides que dans les commandes de manipulations de données (Data Manipulation Languange (DML)), et non dans les structures du langages SQL (Data Defination Language (DDL)).

Les variables SQL doivent être associées à une variable PHP à l'aide de la fonction mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result(), avant d'exécuter la requête.

## Valeurs de retour

Cette fonction retourne `TRUE` en cas de succès, `FALSE` en cas d'échec.

## Voir aussi

mysqli_stmt_init(), mysqli_stmt_execute(), mysqli_stmt_fetch(), mysqli_stmt_bind_param(), mysqli_stmt_bind_result() et mysqli_stmt_close().

## Exemples

Exemple 1. Style orienté objet

`<?php
$mysqli = new mysqli("localhost", "utilisateur", "mot_de_passe", "base");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* Création d'une requête préparée */
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT Region FROM Ville WHERE Name=?")) {
/* Association des variables SQL */
$stmt->bind_param("s", $city);
/* Exécution de la requête */
$stmt->execute();
/* Association des variables de résultats */
$stmt->bind_result($district);
/* Lecture des valeurs */
$stmt->fetch();
printf("%s est dans la région de %s\n", $city, $district);
/* Fermeture de la commande */
$stmt->close();
}
/* Fermeture de la connexion */
$mysqli->close();
?>`

Exemple 2. Style procédural

`<?php
$link = mysqli_connect("localhost", "utilisateur", "mot_de_passe", "base");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* Création d'une requête préparée */
$stmt = mysqli_stmt_init();
if ($stmt = mysqli_stmt_prepare($stmt, "SELECT Region FROM Ville WHERE Name=?")) {
/* Association des variables SQL */
mysqli_stmt_bind_param($stmt, "s", $city);
/* Exécution de la requête */
mysqli_stmt_execute($stmt);
/* Association des variables de résultats */
mysqli_stmt_bind_result($stmt, $district);
/* Lecture des valeurs */
mysqli_stmt_fetch($stmt);
printf("%s est dans la région de %s\n", $city, $district);
/* Fermeture de la commande */
mysqli_stmt_close($stmt);
}
/* Fermeture de la connexion */
mysqli_close($link);
?>`

L'exemple ci-dessus va afficher :

    Amersfoort est dans la région de Utrecht

Précédent | Sommaire | Suivant
mysqli_stmt_param_count | Niveau supérieur | mysqli_stmt_reset