db2_connect
(PECL ibm_db2 >= 1.0.0)
db2_connect — Retourne une connexion à une base de données
Description
$database
, string $username
, string $password
[, array $options
] )Crée une nouvelle connexion à une base de données IBM DB2 Universal Database, IBM Cloudscape ou Apache Derby.
Liste de paramètres
-
database
-
Pour une connexion cataloguée de la base de données,
database
représente l'alias de la base de données dans le catalogue client DB2Pour une connexion non cataloguée de la base de données,
database
représente une chaîne complète de connexion qui est dans le format suivant :DATABASE=
où les paramètres représentent les valeurs suivantes :database
;HOSTNAME=hostname
;PORT=port
;PROTOCOL=TCPIP;UID=username
;PWD=password
;-
database
-
Le nom de la base de données.
-
hostname
-
L'adresse Internet ou IP du serveur de base de données.
-
port
-
Le port TCP/IP sur lequel la base de données écoute les connexions.
-
username
-
Le nom d'utilisateur avec lequel vous vous connectez à la base de données.
-
password
-
Le mot de passe avec lequel vous vous connectez à la base de données.
-
-
username
-
Le nom d'utilisateur avec lequel vous vous connectez à la base de données.
Pour les connexions non cataloguées, vous devez passer une valeur
NULL
ou une chaîne vide. -
password
-
Le mot de passe avec lequel vous vous connectez à la base de données.
Pour les connexions non cataloguées, vous devez passer une valeur
NULL
ou une chaîne vide. -
options
-
Un tableau associatif des options de connexion qui affecteront le comportement de la connexion, où les valeurs des clés incluent :
-
autocommit
-
La valeur DB2_AUTOCOMMIT_ON active l'autocommit sur cette connexion.
La valeur DB2_AUTOCOMMIT_OFF désactive le autocommit pour cette connexion.
-
DB2_ATTR_CASE
-
Passer la valeur DB2_CASE_NATURAL spécifie que les noms de colonnes seront retournés dans leurs casses naturelles.
Passer la valeur DB2_CASE_LOWER spécifie que les noms de colonnes seront retournés en minuscule.
Passer la valeur DB2_CASE_UPPER spécifie que les noms de colonnes seront retournés en majuscule.
-
CURSOR
-
Passer la valeur DB2_FORWARD_ONLY spécifie un curseur uniquement suivant pour une ressource de requête. C'est le type de curseur par défaut et est supporté sur tous les serveurs de base de données.
Passer la valeur DB2_SCROLLABLE spécifie un curseur scrollable pour une ressource de requête. Ce mode permet un accès aléatoire aux lignes dans un jeu de résultats, mais actuellement, n'est supporté que par la base de données IBM DB2 Universal.
La nouvelle option suivante est disponible pour les versions ibm_db2 1.7.0 et suivantes.
-
trustedcontext
-
Le fait de passer la valeur DB2_TRUSTED_CONTEXT_ENABLE active le contexte pour ce gestionnaire de connexion. Ce paramètre ne peut être défini avec la fonction db2_set_option().
Cette clé fonctionne uniquement si la base de données est cataloguée (même si la base de données est locale), ou si vous spécifiez le DSN complet lors de la création de la connexion.
Pour catalogue la base de données, utilisez les commandes suivantes :
db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME> db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback db2 "update dbm cfg using svcename <SERVICENAME>" db2set DB2COMM=TCPIP
Les nouvelles options i5/OS suivantes sont disponibles dans les versions ibm_db2 1.5.1 et suivantes.
-
i5_lib
-
Un caractère qui indique la bibliothèque par défaut qui sera utilisée pour résoudre les références aux fichiers non qualifiées. Ceci n'est pas valide si la connexion utilise un mode de système de nom.
-
i5_naming
-
La valeur DB2_I5_NAMING_ON active DB2 UDB Cli iSeries mode système de nom. Les fichiers sont qualifiés en utilisant le délimiteur slash (/). Les fichiers non qualifiés sont résolus en utilisant la liste de bibliothèque pour le travail.
La valeur DB2_I5_NAMING_OFF désactive DB2 UDB CLI mode de nom par défaut, qui est l'écriture SQL. Les fichiers sont qualifiés en utilisant le délimiteur point (.). Les fichiers non qualifiés sont résolus en utilisant soit la bibliothèque par défaut ou l'ID de l'usager courant.
-
i5_commit
-
L'attribut
i5_commit
devrait être fixé avant l'appel à db2_connect(). Si la valeur est changée après que la connexion ait été établie et que la connexion est à une source de données distance, le changement ne prendra effet qu'au prochain appel de db2_connect().Note:
La configuration php.ini
ibm_db2.i5_allow_commit
==0 ou DB2_I5_TXN_NO_COMMIT est par défaut, mais peut être dérivée avec l'optioni5_commit
.DB2_I5_TXN_NO_COMMIT : contrôle d'envoi n'est pas utilisé.
DB2_I5_TXN_READ_UNCOMMITTED : lecture ancienne, lecture non répétitive et fictive est possible.
DB2_I5_TXN_READ_COMMITTED : lecture ancienne non possible. La lecture répétitive et fictive est possible.
DB2_I5_TXN_REPEATABLE_READ : lecture ancienne et non répétitive n'est pas possible. Lecture fictive est possible.
DB2_I5_TXN_SERIALIZABLE : les transactions sont linéarisées. Lecture ancienne, non répétitive et fictive n'est pas possible.
-
i5_query_optimize
-
DB2_FIRST_IO Toutes les requêtes sont optimisées avec le but de retourner la première page aussi vite que possible. Ce but fonctionne bien lorsque l'affichage est contrôlé par un utilisateur qui peut annuler une requête après avoir vu la première page des données. Les requêtes sont codées avec une clause "OPTIMIZE nnn ROWS" afin de réussir le but spécifié par la clause.
DB2_ALL_IO Toutes les requêtes sont optimisées avec le but de retourner l'entière requête dans le plus petit intervalle de temps. Ceci est une bonne option lorsque l'affichage d'une requête est en train d'être écrit vers un fichier ou un rapport ou encore lorsque l'interface met en queue les données. Les requêtes sont codées avec une clause "OPTIMIZE FOR nnn ROWS" afin de réussir le but spécifié par la clause. Ceci est l'opération par défaut.
-
i5_dbcs_alloc
-
La valeur DB2_I5_DBCS_ALLOC_ON active le canevas d'allocation DB2 6X pour l'accroissement des tailles des colonnes.
La valeur DB2_I5_DBCS_ALLOC_OFF désactive le canevas d'allocation DB2 6X pour l'accroissement des tailles des colonnes.
Note : la configuration php.ini
ibm_db2.i5_dbcs_alloc
==0 ou DB2_I5_DBCS_ALLOC_OFF est par défaut mais peut être dérivée avec l'optioni5_dbcs_alloc
. -
i5_date_fmt
-
DB2_I5_FMT_ISO : le format de date de l'organisation internationale de normalisation (ISO) "yyyy-mm-dd" est utilisé. Ceci est la valeur par défaut.
DB2_I5_FMT_USA : le format de date des États-Unis "mm/dd/yyyy" est utilisé.
DB2_I5_FMT_EUR : le format de date Européen "dd.mm.yyyy" est utilisé.
DB2_I5_FMT_JIS : le format de date de l'industrie japonaise des standards "yyyy-mm-dd" est utilisé.
DB2_I5_FMT_MDY : le format de date "mm/dd/yyyy" est utilisé.
DB2_I5_FMT_DMY : le format de date "dd/mm/yyyy" est utilisé.
DB2_I5_FMT_YMD : le format de date "yy/mm/dd" est utilisé.
DB2_I5_FMT_JUL : le format de date Julien "yy/ddd" est utilisé.
DB2_I5_FMT_JOB : le valeur par défaut est utilisée.
-
i5_date_sep
-
DB2_I5_SEP_SLASH : un slash ( / ) est utilisé en tant que séparateur de date. Ceci est la valeur par défaut.
DB2_I5_SEP_DASH : un tiret ( : ) est utilisé en tant que séparateur de date.
DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de date.
DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de date.
DB2_I5_SEP_BLANK : un espace blanc est utilisé en tant que séparateur de date.
DB2_I5_SEP_JOB : la valeur par défaut est utilisée.
-
i5_time_fmt
-
DB2_I5_FMT_ISO : le format de l'heure de l'organisation internationale de normalisation "hh.mm.ss" est utilisé. Ceci est la valeur par défaut.
DB2_I5_FMT_USA : le format de l'heure des États-Unis "hh:mmxx" est utilisé, où "xx" vaut "AM" ou "PM".
DB2_I5_FMT_EUR : le format de l'heure Européen "hh.mm.ss" est utilisé.
DB2_I5_FMT_JIS : le format de l'heure de l'industrie japonaise des standards "hh:mm:ss" est utilisé.
DB2_I5_FMT_HMS : le format "hh:mm:ss" est utilisé.
-
i5_time_sep
-
DB2_I5_SEP_COLON : un deux-points ( : ) est utilisé en tant que séparateur de temps. Ceci est la valeur par défaut.
DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de temps.
DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de temps.
DB2_I5_SEP_BLANK : un espace blanc est utilisé en tant que séparateur de temps.
DB2_I5_SEP_JOB : la valeur par défaut est utilisée.
-
i5_decimal_sep
-
DB2_I5_SEP_PERIOD : un point ( . ) est utilisé en tant que séparateur de décimale. Ceci est la valeur par défaut.
DB2_I5_SEP_COMMA : une virgule ( , ) est utilisée en tant que séparateur de décimale.
DB2_I5_SEP_JOB : la valeur par défaut est utilisée.
La nouvelle option i5/OS suivante est disponible depuis la version ibm_db2 1.8.0 et suivantes.
-
i5_libl
-
Une chaîne indiquant la liste a utilisé pour résoudre les références de fichiers non qualifiés. Spécifiez la liste en séparant les valeurs par un espace, comme ceci : 'i5_libl'=>"MYLIB YOURLIB ANYLIB".
Note:
i5_libl
appelle qsys2/qcmdexc('cmd',cmdlen), qui n'est disponible que depuis i5/OS V5R4.
-
Valeurs de retour
Retourne la ressource de connexion si la tentative de connexion réussie. Si
la tentative de connexion échoue, db2_connect() retourne
FALSE
.
Exemples
Exemple #1 Création d'une connexion cataloguée
Les connexions cataloguées nécessitent que vous ayez préalablement catalogué la base de données spécifiée à l'aide du processeur de ligne de commandes DB2 ("Command Line Processor" : cLP) ou avec l'assistant de configuration de DB2.
<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$conn = db2_connect($database, $user, $password);
if ($conn) {
echo "Connexion réussie.";
db2_close($conn);
}
else {
echo "Connexion échouée.";
}
?>
L'exemple ci-dessus va afficher :
Connexion réussie.
Exemple #2 Création d'une connexion non cataloguée
Une connexion non cataloguées vous permet de vous connecter dynamiquement à une base de données.
<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
"HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');
if ($conn) {
echo "Connexion réussie.";
db2_close($conn);
}
else {
echo "Connexion échouée.";
}
?>
L'exemple ci-dessus va afficher :
Connexion réussie.
Exemple #3 Création d'une connexion avec autocommit désactivé par défaut
Le fait de passer un tableau d'option à db2_connect() vous permet de modifier le comportement par défaut de la connexion.
<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
if ($conn) {
echo "Connexion réussie.\n";
if (db2_autocommit($conn)) {
echo "Autocommit est activé.\n";
}
else {
echo "Autocommit est désactivé.\n";
}
db2_close($conn);
}
else {
echo "Connexion échouée.";
}
?>
L'exemple ci-dessus va afficher :
Connexion réussie. Autocommit est désactivé.
Exemple #4 Meilleure performance i5/OS
Pour réussir à utiliser les meilleures performance de votre i5/OS ibm_db2 1.5.1, l'application PHP utilise l'hôte par défaut, le userid et le mot de passer pour votre db2_connect().
<?php
$library = "ADC";
$i5 = db2_connect("", "", "", array("i5_lib"=>"qsys2"));
$result = db2_exec($i5,
"select * from systables where table_schema = '$library'");
while ($row = db2_fetch_both($result)) {
echo $row['TABLE_NAME']."</br>";
}
db2_close($i5);
?>
L'exemple ci-dessus va afficher :
ANIMALS NAMES PICTURES
Exemple #5 Utilisation du contexte
L'exemple suivant montre comment activer le contexte, changer d'utilisateur et récupérer l'ID de l'utilisateur courant.
<?php
$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";
$tc_user = "tcuser";
$tc_pass = "tcpassword";
$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);
$tc_conn = db2_connect($dsn, "", "", $options);
if($tc_conn) {
echo "Explicit trusted connection succeeded.\n";
if(db2_get_option($tc_conn, "trustedcontext")) {
$userBefore = db2_get_option($tc_conn, "trusted_user");
//Code en tant qu'utilisateur 1.
//Modification en l'utilisateur de confiance.
$parameters = array("trusted_user" => $tc_user,
"trusted_password" => $tcuser_pass);
$res = db2_set_option ($tc_conn, $parameters, 1);
$userAfter = db2_get_option($tc_conn, "trusted_user");
//Code en tant qu'utilisateur de confiance.
if($userBefore != $userAfter) {
echo "L'utilisateur a changé." . "\n";
}
}
db2_close($tc_conn);
}
else {
echo "Le changement de contexte de connexion a échoué.\n";
}
?>
L'exemple ci-dessus va afficher :
Le changement de contexte de connexion a échoué. L'utilisateur a changé.
Voir aussi
- db2_close() - Ferme une connexion de base de données
- db2_pconnect() - Retourne une connexion persistante à une base de données
Version en cache
26/11/2024 09:02:23 Cette version de la page est en cache (à la date du 26/11/2024 09:02:23) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-db2-connect.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.