Manuel PHP
Précédent |  | Suivant

# mysqli_prepare

(PHP 5)

mysqli_prepare

(no version information, might be only in CVS)

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

## Description

Style procédural

mixed mysqli_prepare ( object link, string query)

Style orienté objet (méthode)

class stmt {
mixed prepare ( string query)
}

mysqli_prepare() prépare la requète SQL `query` et retourne une ressource à utiliser pour les futures opérations sur le traitement. La requète doit être une requète SQL unique.

> Note : Vous ne devez pas ajouter de point virgule ou de `\g` dans la requète.

Le paramètre `query` peut inclure un ou plusieurs paramètres de marques dans la requète SQL avec le caractère "point d'interrogation" (`?`) à la position appropriée.

> Note : Les marques ne sont autorisées uniquement dans certaines endroits des requètes SQL. Par exemple, elles sont autorisées dans la liste VALUES() d'une requète INSERT ( pour spécifier les valeurs des colonnes pour une ligne), ou dans une comparaison d'une clause WHERE pour spécifier une valeur de comparaison.

> Cependant, elles ne sont pas autorisées pour les identifiants (comme les noms de tables ou de colonnes), dans une liste de sélection où les noms des colonnes doivent être retournés par une requète SELECT, ou pour spécifier un opérateur tel que le signe égal (`=`). La dernière restriction est nécessaire car il est impossible de déterminer le type de paramètre. En général, les paramètres ne sont autorisés que dans les requètes DML (Data Manipulation Language) et non dans les requètes DDL (Data Defination Language).

Les paramètres de marques doivent être liés à des variables utilisées dans les fonctions mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result() avant d'exécuter la requète ou de récupérer les lignes.

## Valeurs de retour

mysqli_prepare() retourne un objet de traitement ou `FALSE` si une erreur survient.

## Voir aussi

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", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* Crée une requète préparée */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
/* Lecture des paramètres de marques */
$stmt->bind_param("s", $city);
/* Exécution de la requète */
$stmt->execute();
/* Lecture des variables résultantes */
$stmt->bind_result($district);
/* Récupération des valeurs */
$stmt->fetch();
printf("%s est dans le district de %s\n", $city, $district);
/* Fermeture du traitement */
$stmt->close();
}
/* Fermeture de la connexion */
$mysqli->close();
?>`

Exemple 2. Style procédural

`<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* Crée une requète préparée */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {
/* Lecture des paramètres de marques */
mysqli_stmt_bind_param($stmt, "s", $city);
/* Exécution de la requète */
mysqli_stmt_execute($stmt);
/* Lecture des variables résultantes */
mysqli_stmt_bind_result($stmt, $district);
/* Récupération des valeurs */
mysqli_stmt_fetch($stmt);
printf("%s est dans le district de %s\n", $city, $district);
/* Fermeture du traitement */
mysqli_stmt_close($stmt);
}
/* Fermeture de la connexion */
mysqli_close($link);
?>`

L'exemple ci-dessus va afficher :

    Amersfoort est dans le district de Utrecht

Précédent | Sommaire | Suivant
mysqli_ping | Niveau supérieur | mysqli_query