PHP Conference Japan 2024

odbc_setoption

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_setoption调整 ODBC 设置

描述

odbc_setoption(
    Odbc\Connection|Odbc\Result $odbc,
    int $which,
    int $option,
    int $value
): bool

此函数允许调整特定连接或查询结果的 ODBC 选项。它被编写用来帮助找到解决古怪 ODBC 驱动程序中问题的变通方法。您可能只有在您是 ODBC 程序员并且理解各种选项将产生的影响时才应该使用此函数。您肯定需要一个好的 ODBC 参考来解释所有可以使用的不一样选项和值。不一样的驱动程序版本支持不一样的选项。

由于效果可能因 ODBC 驱动程序而异,因此强烈建议不要在要公开发布的脚本中使用此函数。此外,某些 ODBC 选项在此函数中不可用,因为它们必须在建立连接或准备查询之前设置。但是,如果在某个特定工作中它可以使 PHP 工作,从而您的老板不会告诉您使用商业产品,那么这才是真正重要的。

参数

odbc

是要更改设置的连接 ID 或结果 ID。对于 SQLSetConnectOption(),这是一个连接 ID。对于 SQLSetStmtOption(),这是一个结果 ID。

which

是要使用的 ODBC 函数。对于 SQLSetConnectOption(),该值应为 1;对于 SQLSetStmtOption(),该值应为 2。

option

要设置的选项。

value

给定 option 的值。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.4.0 odbc 现在期望一个 Odbc\ConnectionOdbc\Result 实例;之前,期望一个 resource

范例

示例 #1 odbc_setoption() 示例

<?php
// 1. SQLSetConnectOption() 的选项 102 是 SQL_AUTOCOMMIT。
// SQL_AUTOCOMMIT 的值 1 是 SQL_AUTOCOMMIT_ON。
// 此示例与以下示例具有相同的效果:
// odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. SQLSetStmtOption() 的选项 0 是 SQL_QUERY_TIMEOUT。
// 此示例将查询超时时间设置为 30 秒。

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>

添加注释

用户贡献的注释 1 条注释

-1
egil at wp dot pl
15 年前
Microsoft SQL Server ODBC 的一些选项
1 - (SQL_MAX_ROWS) 显示前 x 行
6 - (SQL_CURSOR_TYPE) 更改游标 - 应该在 PHP 5.3 中才能工作

您可以使用此页面将常量名称(例如在 Microsoft 网站上找到的)“翻译”成相应的值
http://www.freepascal.org/docs-html/packages/odbcsql/index-2.html

顺便说一句。如果有人在使用带有 ORDER BY 子句的 execute 时遇到“游标类型已更改”警告,那么现在只需使用 exec(请记住为自己添加斜杠)。在 PHP 5.3 中,Bug #43668 将得到修复,它将允许您将游标类型更改为 SQL_CUR_USE_ODBC。

请注意,您也可以尝试在 odbc_connect 中选择游标类型,但这对我来说不起作用(出现的问题比解决的问题更多)。
To Top