Manuel PHP
Précédent |  | Suivant

# maxdb_stmt_bind_param

(PECL)

maxdb_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param -- Lie les variables à une requête préparée en tant que paramètres

## Description

Style procédural

bool maxdb_stmt_bind_param ( resource stmt, string types, mixed &var1 [, mixed &...] )

Style orienté objet (méthode)

class stmt {
bool bind_param ( string types, mixed &var1 [, mixed &...] )
}

Style procédural (syntaxe étendue) :

bool maxdb_stmt_bind_param ( resource stmt, string types, array &var )

Style orienté objet (méthode) (syntaxe étendue):

class stmt {
bool bind_param ( string types, array &var )
}

maxdb_stmt_bind_param() est utilisé pour lier les variables pour les marqueurs dans la requête SQL qui a été passée à maxdb_prepare(). La chaîne `types` contient un ou plusieurs caractères qui spécifient le(s) type(s) correspondant aux variables liées.

La syntaxe étendue de maxdb_stmt_bind_param() permet de passer les paramètres en tant que tableaux plutôt qu'en tant que listes de variables PHP à la fonction. Si le tableau de variables n'a pas été utilisé avant l'appel à la fonction maxdb_stmt_bind_param(), il doit être initialisé en tant que tableau vide. Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() avec la syntaxe étendue.

Les variables pour les requêtes `SELECT INTO SQL` peuvent également être liées en utilisant la fonction maxdb_stmt_bind_param(). Les paramètres pour les procédures de base de données peuvent être liés en utilisant la fonction maxdb_stmt_bind_param(). Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() dans ce cas.

Si une variable liée comme variable `INTO` à une requête SQL a été utilisée avant, le contenu de cette variable sera écrasé par les données de la requête `SELECT INTO`. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Pour les paramètres `INOUT` des procédures de base de données, le contenu de la variable liée `INOUT` sera écrasé par la valeur de sortie de la procédure de la base de données. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Tableau 1. Caractères spécifiant les types

Caractères | Description
--- | ---
i | correspond à une variable de type entier
d | correspond à une variable de type ???
s | correspond à une variable de type chaîne de caractères
b | correspond à une variable de type `blob` et sera envoyée dans le paquet

## Valeurs de retour

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

## Exemples

Exemple 1. Style orienté objet

`<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');
/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Echec de la connexion : %s\n", maxdb_connect_error());
exit();
}
$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");
$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss', $zip, $name, $state);
$zip = '11111';
$name = 'Georgetown';
$state = 'NY';
/* Exécution de la requête préparée */
$stmt->execute();
printf("%d ligne insérée.\n", $stmt->affected_rows);
/* Fermeture de la requête */
$stmt->close();
/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n", $maxdb->affected_rows);
/* Fermeture de la connexion */
$maxdb->close();
?>`

Exemple 2. Style procédural

`<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* Vérification de la connexion */
if (!$link) {
printf("Echec de la connexion : %s\n", maxdb_connect_error());
exit();
}
maxdb_query ($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");
$stmt = maxdb_prepare($link, "INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt, 'sss', $zip, $name, $state);
$zip = '11111';
$name = 'Georgetown';
$state = 'NY';
/* Exécution de la requête préparée */
maxdb_stmt_execute($stmt);
printf("%d ligne insérée.\n", maxdb_stmt_affected_rows($stmt));
/* Fermeture de la requête */
maxdb_stmt_close($stmt);
/* Nettoyage de la table CountryLanguage */
maxdb_query($link, "DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n", maxdb_affected_rows($link));
/* Fermeture de la connexion */
maxdb_close($link);
?>`

L'exemple ci-dessus va afficher :

    1 ligne insérée.
    1 ligne effacée.

Exemple 3. Style procédural (SELECT INTO)

`<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* Vérification de la connexion */
if (!$link) {
printf("Echec de la connexion : %s\n", maxdb_connect_error());
exit();
}
/* Exécution d'une requête SQL */
$stmt = maxdb_prepare ($link, "SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!$stmt) {
printf ("Echec de la préparation : %s\n", maxdb_error($link));
}
$hno = "50";
$rtype = "suite";
maxdb_stmt_bind_param($stmt, 'dss', $price, $hno, $rtype);
maxdb_stmt_execute($stmt);
printf ("%f\n", $price);
maxdb_stmt_close ($stmt);
?>`

L'exemple ci-dessus va afficher :

    21.600000

Exemple 4. Style procédural (DB procedure)

`<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* Vérification de la connexion */
if (!$link) {
printf("Echec de la connexion : %s\n", maxdb_connect_error());
exit();
}
maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);
$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";
maxdb_query($link, $query);
/* Exécution d'une requête SQL */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
printf ("Echec de la préparation : %s\n", maxdb_error($link));
}
maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);
printf ("%s\n", $result);
maxdb_stmt_close ($stmt);
?>`

L'exemple ci-dessus va afficher :

    a

Exemple 5. Style orienté objet (syntaxe étendue)

`<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');
/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Connect failed: %s\n", maxdb_connect_error());
exit();
}
$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");
$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$arr = array();
$stmt->bind_param('iss', $arr);
$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';
/* Exécution de la requête préparée */
$stmt->execute();
printf("%d ligne insérée.\n", maxdb_stmt_affected_rows($stmt));
$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';
/* Exécution de la requête préparée */
$stmt->execute();
printf("%d ligne insérée.\n", $stmt->affected_rows);
/* Fermeture de la requête et de la connexion */
$stmt->close();
$result = $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if ($result) {
while ($row = $result->fetch_row()) {
printf ("%s %s %s\n", $row[0], $row[1], $row[2]);
}
}
/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d lignes effacées.\n", $maxdb->affected_rows);
/* Fermeture de la connexion */
$maxdb->close();
?>`

L'exemple ci-dessus va afficher :

    1 ligne insérée.
    1 ligne insérée.
    11111 Georgetown NY
    22222 New Orleans LA
    2 lignes effacées.

## Voir aussi

maxdb_stmt_bind_result(), maxdb_stmt_execute(), maxdb_stmt_fetch(), maxdb_prepare(), maxdb_stmt_send_long_data(), maxdb_stmt_errno() et maxdb_stmt_error().

Précédent | Sommaire | Suivant
maxdb_stmt_affected_rows | Niveau supérieur | maxdb_stmt_bind_result