(PECL ibm_db2 >= 1.6.0)
db2_get_option — 检索语句资源或连接资源的选项值
resource
来自 db2_prepare() 的有效语句资源,或来自 db2_connect() 或 db2_pconnect() 的有效连接资源。
option
有效的语句或连接选项。从 ibm_db2 1.6.0 版开始,以下新选项可用。它们提供了有用的跟踪信息,可以在执行期间使用 db2_get_option() 设置。
注意:
早期版本的 ibm_db2 不支持这些新选项。
当设置每个选项中的值时,某些服务器可能无法处理提供的整个长度,并且可能会截断该值。
为了确保在传输到主机系统时每个选项中指定的数据正确转换,请仅使用 A 到 Z、0 到 9 以及下划线 (_) 或句点 (.) 字符。
userid
SQL_ATTR_INFO_USERID
- 用于标识使用 DB2 Connect 发送到主机数据库服务器的客户端用户 ID 的以 null 结尾的字符字符串的指针。
注意:
DB2 for z/OS 和 OS/390 服务器支持最长 16 个字符。此用户 ID 不要与身份验证用户 ID 混淆,它仅用于识别目的,不用于任何授权。
acctstr
SQL_ATTR_INFO_ACCTSTR
- 用于标识使用 DB2 Connect 发送到主机数据库服务器的客户端计费字符串的以 null 结尾的字符字符串的指针。
注意:
DB2 for z/OS 和 OS/390 服务器支持最长 200 个字符。
applname
SQL_ATTR_INFO_APPLNAME
- 用于标识使用 DB2 Connect 发送到主机数据库服务器的客户端应用程序名称的以 null 结尾的字符字符串的指针。
注意:
DB2 for z/OS 和 OS/390 服务器支持最长 32 个字符。
wrkstnname
SQL_ATTR_INFO_WRKSTNNAME
- 用于标识使用 DB2 Connect 发送到主机数据库服务器的客户端工作站名称的以 null 结尾的字符字符串的指针。
注意:
DB2 for z/OS 和 OS/390 服务器支持最长 18 个字符。
下表指定哪些选项与可用的资源类型兼容
键 | 值 | 资源类型 | ||
---|---|---|---|---|
连接 | 语句 | 结果集 | ||
userid | SQL_ATTR_INFO_USERID |
X | X | - |
acctstr | SQL_ATTR_INFO_ACCTSTR |
X | X | - |
applname | SQL_ATTR_INFO_APPLNAME |
X | X | - |
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME |
X | X | - |
如果成功,则返回连接属性的当前设置;如果失败,则返回 false
。
示例 #1 通过连接资源设置和检索参数
<?php
/* 数据库连接参数 */
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
/* 获取连接资源 */
$conn = db2_connect($database, $user, $password);
echo "通过连接字符串传递的客户端属性:\n";
/* 使用有效的键值对创建关联选项数组 */
/* 通过连接字符串分配属性 */
/* 访问指定的选项 */
$options1 = array('userid' => 'db2inst1');
$conn1 = db2_connect($database, $user, $password, $options1);
$val = db2_get_option($conn1, 'userid');
echo $val . "\n";
$options2 = array('acctstr' => 'account');
$conn2 = db2_connect($database, $user, $password, $options2);
$val = db2_get_option($conn2, 'acctstr');
echo $val . "\n";
$options3 = array('applname' => 'myapp');
$conn3 = db2_connect($database, $user, $password, $options3);
$val = db2_get_option($conn3, 'applname');
echo $val . "\n";
$options4 = array('wrkstnname' => 'workstation');
$conn4 = db2_connect($database, $user, $password, $options4);
$val = db2_get_option($conn4, 'wrkstnname');
echo $val . "\n";
echo "连接后传递的客户端属性:\n";
/* 使用有效的键值对创建关联选项数组 */
/* 建立连接后分配属性 */
/* 访问指定的选项 */
$options5 = array('userid' => 'db2inst1');
$conn5 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn5, $options5, 1);
$val = db2_get_option($conn5, 'userid');
echo $val . "\n";
$options6 = array('acctstr' => 'account');
$conn6 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn6, $options6, 1);
$val = db2_get_option($conn6, 'acctstr');
echo $val . "\n";
$options7 = array('applname' => 'myapp');
$conn7 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn7, $options7, 1);
$val = db2_get_option($conn7, 'applname');
echo $val . "\n";
$options8 = array('wrkstnname' => 'workstation');
$conn8 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn8, $options8, 1);
$val = db2_get_option($conn8, 'wrkstnname');
echo $val . "\n";
?>
以上示例将输出
Client attributes passed through connection string: db2inst1 account myapp workstation Client attributes passed post-connection: db2inst1 account myapp workstation