(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。
注意:
DB2 for z/OS 和 OS/390 服务器支持的最大长度为 16 个字符。此用户 ID 不要与身份验证用户 ID 混淆,它仅用于标识目的,不用于任何授权。
acctstr
SQL_ATTR_INFO_ACCTSTR
- 指向一个空终止字符字符串的指针,用于标识在使用 DB2 Connect 时发送到主机数据库服务器的客户端记帐字符串。
注意:
DB2 for z/OS 和 OS/390 服务器支持的最大长度为 200 个字符。
applname
SQL_ATTR_INFO_APPLNAME
- 指向一个空终止字符字符串的指针,用于标识在使用 DB2 Connect 时发送到主机数据库服务器的客户端应用程序名称。
注意:
DB2 for z/OS 和 OS/390 服务器支持的最大长度为 32 个字符。
wrkstnname
SQL_ATTR_INFO_WRKSTNNAME
- 指向一个空终止字符字符串的指针,用于标识在使用 DB2 Connect 时发送到主机数据库服务器的客户端工作站名称。
注意:
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