Creates a new connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.
For a cataloged connection to a database, database
represents the database alias in the DB2 client catalog.
For an uncataloged connection to a database, database
represents a complete connection string in the following format:
DATABASE=database
;HOSTNAME=hostname
;PORT=port
;PROTOCOL=TCPIP;UID=username
;PWD=password
;
The username with which you are connecting to the database.
For uncataloged connections, you must pass a NULL
value or empty string.
The password with which you are connecting to the database.
For uncataloged connections, you must pass a NULL
value or empty string.
An associative array of connection options that affect the behavior of the connection, where valid array keys include:
Returns a connection handle resource if the connection attempt is successful. If the connection attempt fails, db2_connect() returns FALSE
.
Cataloged connections require you to have previously cataloged the target database through the DB2 Command Line Processor (CLP) or DB2 Configuration Assistant.
<?php $database = 'SAMPLE'; $user = 'db2inst1'; $password = 'ibmdb2'; $conn = db2_connect($database, $user, $password); if ($conn) { echo "Connection succeeded."; db2_close($conn); } else { echo "Connection failed."; } ?>
The above example will output:
Connection succeeded.
An uncataloged connection enables you to dynamically connect to a database.
<?php $database = 'SAMPLE'; $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 "Connection succeeded."; db2_close($conn); } else { echo "Connection failed."; } ?>
The above example will output:
Connection succeeded.
Passing an array of options to db2_connect() enables you to modify the default behavior of the connection handle.
<?php $database = 'SAMPLE'; $user = 'db2inst1'; $password = 'ibmdb2'; $options = array('autocommit' => DB2_AUTOCOMMIT_OFF); $conn = db2_connect($database, $user, $password, $options); if ($conn) { echo "Connection succeeded.\n"; if (db2_autocommit($conn)) { echo "Autocommit is on.\n"; } else { echo "Autocommit is off.\n"; } db2_close($conn); } else { echo "Connection failed."; } ?>
The above example will output:
Connection succeeded. Autocommit is off.
To achieve best performance for your i5/OS ibm_db2 1.5.1 PHP application use the default host, userid, and password for your 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); ?>
The above example will output:
ANIMALS NAMES PICTURES
The following example shows how to enable trusted context, switch users, and get the current user ID.
<?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"); //Do some work as user 1. //Switching to trusted user. $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"); //Do more work as trusted user. if($userBefore != $userAfter) { echo "User has been switched." . "\n"; } } db2_close($tc_conn); } else { echo "Explicit trusted connection failed.\n"; } ?>
The above example will output:
Explicit trusted connection succeeded. User has been switched.
Please login to continue.