Manuel PHP
Précédent |  | Suivant

# db2_set_option

(PECL)

db2_set_option -- Fixe des options pour une connexion ou des ressources

## Description

bool db2_set_option ( resource resource, array options [, int type] )

Fixe des options pour une ressource ou une connexion. Vous ne pouvez pas fixer des options pour un jeu de résultats.

## Liste de paramètres

`resource`

  Une ressource valide comme retournée par db2_prepare() ou une connexion valide comme retournée par db2_connect() ou db2_pconnect().

`options`

  Un tableau associatif contenant des options de ressources ou de connexion valides. Ce paramètre peut être utilisé pour changer les valeurs d'autocommit, types de curseur (flottant ou à avance seule) et spécifier la casse des noms de colonne (minuscule, majuscule ou naturelle) qui apparaîtra dans le jeu de résultats.

  `autocommit`

    Passer `DB2_AUTOCOMMIT_ON` active l'autocommit pour la connexion spécifiée.

    Passer `DB2_AUTOCOMMIT_OFF` désactive l'autocommit pour la connexion spécifiée.

  `cursor`

    Passer `DB2_FORWARD_ONLY` spécifie un curseur à avance seule pour une ressource. Ceci est le type de défaut pour un curseur et est supporté par tous les serveurs de base de données.

    Passer `DB2_SCROLLABLE` spécifie un curseur flottant pour une ressource. Les curseurs flottants permettent aux lignes de résultats d'être accessibles dans un ordre non séquentiel. Ce type de curseur est supporté seulement par les bases de données IBM DB2 Universal Database.

  `binmode`

    Passer `DB2_BINARY` spécifie que des données binaires seront retournées comme telles. Ceci est le mode par défaut. Ceci est équivalent à la configuration `ibm_db2.binmode=1` dans `php.ini`.

    Passer `DB2_CONVERT` spécifie que les données binaires seront converties en encodage hexadécimal et seront retourné ainsi. Ceci est équivalent à la configuration `ibm_db2.binmode=2` dans `php.ini`.

    Passer `DB2_PASSTHRU` spécifie que les données binaires seront converties en `NULL`. Ceci est équivalent à la configuration `ibm_db2.binmode=3` dans `php.ini`.

  `db2_attr_case`

    Passer `DB2_CASE_LOWER` spécifie que les noms des colonnes dans le jeu de résultats seront retournés en minuscule.

    Passer `DB2_CASE_UPPER` spécifie que les noms des colonnes dans le jeu de résultats seront retournés en majuscule.

    Passer `DB2_CASE_NATURAL` spécifie que les noms de colonnes dans le jeu de résultats seront retournés en casse naturelle.

  Les nouvelles options suivantes i5/OS sont disponibles depuis la version 1.5.1 de ibm_db2. Note : les anciennes versions de ibm_db2 ne supportent pas ces nouvelles options.

  `i5_fetch_only`

    `DB2_I5_FETCH_ON` - Les curseurs sont en lecture seule et ne peuvent être utilisé pour positionner des mises à jour et des suppressions. Ceci est la valeur par défaut a moins que la variable d'environnement `SQL_ATTR_FOR_FETCH_ONLY` ait été mis à `SQL_FALSE`.

    `DB2_I5_FETCH_OFF` - Les curseurs peuvent être positionnés pour mises à jour et suppressions.

`type`

  Un entier qui spécifie le type de ressource qui a été passé à la fonction. Le type de ressource et valeur doit correspondre.

  ``

    Passer `1` en tant que valeur spécifie qu'une ressource de connexion a été passée à la fonction.

    Passer n'importe quel entier non égal à `1` en tant que valeur spécifie qu'une ressource a été passée à la fonction.

Le tableau suivant spécifie quelles options sont compatibles avec quels types de ressources :

Tableau 1. Resource-Parameter Matrix

Clé | Valeur | Type de Ressource
--- | --- | ---
|  | Connexion | Requête | Jeu de Résultats
autocommit | `DB2_AUTOCOMMIT_ON` | X | - | -
autocommit | `DB2_AUTOCOMMIT_OFF` | X | - | -
cursor | `DB2_SCROLLABLE` | X | X | -
cursor | `DB2_FORWARD_ONLY` | X | X | -
binmode | `DB2_BINARY` | X | X | -
binmode | `DB2_CONVERT` | X | X | -
binmode | `DB2_PASSTHRU` | X | X | -
db2_attr_case | `DB2_CASE_LOWER` | X | X | -
db2_attr_case | `DB2_CASE_UPPER` | X | X | -
db2_attr_case | `DB2_CASE_NATURAL` | X | X | -
i5_fetch_only | `DB2_I5_FETCH_ON` | - | X | -
i5_fetch_only | `DB2_I5_FETCH_OFF` | - | X | -

## Valeurs de retour

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

## Exemples

Exemple 1. Fixer un paramètre à une ressource de connexion

`<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";
/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');
/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);
/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);
/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
echo 'Options fixées correctement';
}
else
{
echo 'Impossible de fixer les options';
}
?>`

L'exemple ci-dessus va afficher :

    Options fixées correctement

Exemple 2. Fixe des paramètres multiples avec une ressource de connexion

`<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";
/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');
/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);
/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);
/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
echo 'Options fixées correctement';
}
else
{
echo 'Impossible de fixer les options';
}
?>`

L'exemple ci-dessus va afficher :

    Options fixées correctement

Exemple 3. Fixe des paramètres multiples avec une clé invalide

`<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";
/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');
/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'MY_INVALID_KEY' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);
/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);
/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
echo 'Options fixées correctement';
}
else
{
echo 'Impossible de fixer les options';
}
?>`

L'exemple ci-dessus va afficher :

    Impossible de fixer les options

Exemple 4. Fixe des paramètres multiples avec une valeur invalide

`<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";
/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');
/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => 'INVALID_VALUE',
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);
/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$result = db2_set_option($conn, $options, 1);
/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
echo 'Options fixées correctement';
}
else
{
echo 'Impossible de fixer les options';
}
?>`

L'exemple ci-dessus va afficher :

    Impossible de fixer les options

Exemple 5. Fixe des paramètres multiples avec une ressource de connexion et un mauvais type

`<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";
/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');
/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);
/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type invalide */
$result = db2_set_option($conn, $options, 2);
/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
echo 'Options fixées correctement';
}
else
{
echo 'Impossible de fixer les options';
}
?>`

L'exemple ci-dessus va afficher :

    Impossible de fixer les options

Exemple 6. Fixe des paramètres multiples avec une mauvaise ressource

`<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";
/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');
/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);
$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE');
/* Appel de la fonction en utilisant le type incorrect de ressource, mais le tableau
* d'options et la valeur type valide */
$result = db2_set_option($stmt, $options, 1);
/* Vérifie si toutes les options peuvent être fixées correctement */
if($result)
{
echo 'Options fixées correctement';
}
else
{
echo 'Impossible de fixer les options';
}
?>`

L'exemple ci-dessus va afficher :

    Impossible de fixer les options

Exemple 7. Tout mettre ensemble

`<?php
/* Paramètres de Connexion */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';
/* Chaînes de caractères de Connexion */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";
/* Récupération de la Ressource de Connexion */
$conn = db2_connect($conn_string, '', '');
/* Crée le tableau associatif d'options avec des paires clé-valeur valides */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
'cursor' => DB2_SCROLLABLE);
$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');
/* Appel de la fonction en utilisant le type correct de ressource, le tableau
* d'options et la valeur type */
$option_result = db2_set_option($stmt, $options, 2);
$result = db2_execute($stmt, array('000130', '000140'));
/* Récupère la ligne 2 avant la ligne 1 puisque nous avons un curseur flottant */
print_r(db2_fetch_assoc($stmt, 2));
print '<br /><br />';
print_r(db2_fetch_assoc($stmt, 1));
?>`

L'exemple ci-dessus va afficher :

    Array
    (
        [empno] => 000140
        [firstnme] => HEATHER
        [midinit] => A
        [lastname] => NICHOLLS
        [workdept] => C01
        [phoneno] => 1793
        [hiredate] => 1976-12-15
        [job] => ANALYST
        [edlevel] => 18
        [sex] => F
        [birthdate] => 1946-01-19
        [salary] => 28420.00
        [bonus] => 600.00
        [comm] => 2274.00
    )

    Array
    (
        [empno] => 000130
        [firstnme] => DELORES
        [midinit] => M
        [lastname] => QUINTANA
        [workdept] => C01
        [phoneno] => 4578
        [hiredate] => 1971-07-28
        [job] => ANALYST
        [edlevel] => 16
        [sex] => F
        [birthdate] => 1925-09-15
        [salary] => 23800.00
        [bonus] => 500.00
        [comm] => 1904.00
    )

Exemple 8. Les curseurs i5/OS sont en lecture seule

`<?php $conn = db2_connect("", "", "", array("i5_lib"=>"nobody")); $stmt = db2_prepare($conn, 'select * from names where first = ?'); $name = "first2"; db2_bind_param($stmt, 1, "name", DB2_PARAM_IN); $options = array("i5_fetch_only"=>DB2_I5_FETCH_ON); db2_set_option($stmt,$options,0); if (db2_execute($stmt)) { while ($row = db2_fetch_array($stmt)) { echo "{$row[0]} {$row[1]}"; } } ?>`

L'exemple ci-dessus va afficher :

    first2 last2

## Voir aussi

db2_connect()
db2_pconnect()
db2_exec()
db2_prepare()
db2_cursor_type()

Précédent | Sommaire | Suivant
db2_server_info | Niveau supérieur | db2_special_columns