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 : |