PHP Conference Japan 2024

odbc_setoption

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

odbc_setoption調整 ODBC 設定

說明

odbc_setoption(
    Odbc\Connection|Odbc\Result $odbc,
    整數 $which,
    整數 $option,
    整數 $value
): 布林值

此函式允許調整特定連線或查詢結果的 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 實例;先前需要的是 資源

範例

範例 #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 中,錯誤 #43668 將會被修復,它將允許您將游標類型變更為 SQL_CUR_USE_ODBC。

請注意,您也可以嘗試在 odbc_connect 中選擇游標類型,但这對我來說無效(反而產生了更多問題)。
To Top