PHP Conference Japan 2024

odbc_connect

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

odbc_connect連線到資料來源

說明

odbc_connect(
    字串 $dsn,
    字串 $user,
    字串 $password,
    整數 $cursor_option = SQL_CUR_USE_DRIVER
): Odbc\Connection|false

此函數返回的連線 ID 會被其他 ODBC 函數使用。您可以同時開啟多個連線,只要它們使用不同的資料庫或不同的憑證即可。

使用某些 ODBC 驅動程式時,執行複雜的預存程序可能會失敗,並出現類似以下的錯誤:「無法在包含單一 select 陳述式以外任何內容的預存程序上開啟游標」。使用 SQL_CUR_USE_ODBC 可以避免該錯誤。此外,某些驅動程式不支援 odbc_fetch_row() 中的選用參數 row_number。在這種情況下,SQL_CUR_USE_ODBC 也可能有所幫助。

參數

dsn

連線的資料來源名稱。或者,可以使用無 DSN 的連線字串。

user

使用者名稱。

password

密碼。

cursor_option

設定此連線要使用的游標類型。通常不需要此參數,但可用於解決某些 ODBC 驅動程式發生的問題。

已針對 cursortype 定義下列常數

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

返回值

返回 ODBC 連線,如果失敗則返回 false

更新日誌

版本 說明
8.4.0 odbc 現在需要 Odbc\Connection 實例;先前需要的是 資源
8.4.0 此函數現在返回 Odbc\Connection 實例;先前返回的是 資源

範例

範例 #1 無 DSN 連線

<?php
// 使用 SQL Native Client 10.0 ODBC 驅動程式的 Microsoft SQL Server - 允許連線到 SQL 7、2000、2005 和 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

參見

新增筆記

使用者貢獻的筆記 30 則筆記

fr at freedom2ct dot com
5 年前
在 Windows 系統下,odbc_connect(以及 PDO ODBC)顯然使用 Windows 地區設定來處理例如 MS Access 和 MS SQL Server 資料庫的輸入和輸出。

如果使用 ASCII 以外的字元,這會造成許多麻煩。

像 utf8_encode 和 mb_convert 之類的解決方案都無效。

我找到可行的解決方案是對 Windows 進行以下更改

控制台 > 地區 > 系統管理 > 變更系統地區設定
>勾選「<i>使用 Unicode UTF-8 提供全球語言支援。</i>」
nunya at damn dot biz
4 年前
關於 odbc_pconnect 以及其他 pconnect 變體的額外說明

如果連線遇到錯誤(錯誤的 SQL、不正確的請求等),該錯誤將會出現在 odbc_errormsg 中,並影響該連線上的每個後續動作,即使後續動作沒有造成其他錯誤。

例如

一個腳本使用 odbc_pconnect 連線。
連線在第一次使用時建立。
腳本呼叫查詢「Select * FROM Table1」。
Table1 不存在,odbc_errormsg 包含該錯誤。

稍後(可能是幾天後),使用相同的參數呼叫另一個腳本使用 odbc_pconnect。
連線已存在,因此會重複使用。
腳本呼叫查詢「Select * FROM Table0」。
查詢執行正常,但 odbc_errormsg 仍然返回關於 Table1 不存在的錯誤。

我沒有看到使用 odbc_ 函式清除該錯誤的方法,因此請注意這個陷阱,或者改用 odbc_connect。
webmaster at dzconnexion dot com
19 年前
關於 Grisu 在 2003 年 12 月 23 日 11:51 發表的筆記:透過 ODBC 連線到網路上的 MS-Access 資料庫,

請務必在設定登錄機碼時,如下所示加上雙反斜線

"\\\\Server\\folder\\database.mdb"

...
Mahmoud at iastate dot edu
23 年前
WINNT 4 Workstation, PHP4

當我嘗試連線到 MS Access DSN 時,odbc_connect() 一直出現奇怪的錯誤(Microsoft Jet 引擎無法開啟資料庫「Unknow」。另一個使用者正在獨佔使用它,或者您沒有使用它的權限)。

在抓狂了一陣子之後,我發現我的資料庫名稱中有一個空格(course surveys.mdb),我縮短了名稱以消除空格…然後一切正常。
lffranco at dco.pemex.com
21 年前
一如往常,微軟搞不清楚狀況……我一直試著透過 ODBC 連線到網路上 Windows 2000 電腦上的 Access 資料庫(不是本地檔案,而是對應到 V: 磁碟機)。

我得到的只有這個訊息
警告:SQL 錯誤:[Microsoft][ODBC Microsoft Access Driver]「'(unknown)' 不是有效的路徑。請確認路徑名稱拼寫正確,以及您已連線到檔案所在的伺服器。」,SQL 狀態 S1009,位於 d:\apache\cm\creaart.php 的第 13 行中的 SQLConnect

所以……我開始四處尋找,看來 ODBC 驅動程式有一些嚴重的問題

1. 它無法透過網路磁碟機存取 Access 資料庫。這適用於任何應用程式,例如 PHP、Coldfusion 等等
2. 您無法使用 UNC (\\Server\resource) 建立系統 DSN,因此您必須對應磁碟機

真夠可愛的,不是嗎?

所以……我放棄了 ODBC,改用 ADO,以下是可行的程式碼

=== 程式碼 ===

$db = '\\\\server\\resource\\db.mdb';
$conn = new COM('ADODB.Connection');
$conn->Open("DRIVER={Microsoft Access 驅動程式 (*.mdb)}; DBQ=$db");

// Microsoft Access 驅動程式 (*.mdb)
// 必須是 ODBC 驅動程式中的名稱,也就是您從
// 資料來源 (ODBC) 取得的名稱。
// 在這個例子中,我雖然在墨西哥,但驅動程式名稱卻是葡萄牙文,感謝微軟。

$sql = 'SELECT username FROM tblUsuarios';
$res = $conn->Execute($sql);
while (!$res->EOF)
{
print $res->Fields['username']->Value . "<br>";
$res->MoveNext();
}

$res->Close();
$conn->Close();
$res = null;
$conn = null;

=== 程式碼結束 ===
Shyam Hazari
15 年前
這是我在 Ubuntu 上使用 odbc_connect 成功連線到 MySQL 的方法。我花了一段時間才弄清楚。

使用 apt-get 安裝了以下套件。

apache2
apache2-mpm-prefork
apache2-utils
apache2.2-common
libapache2-mod-php5
libdbd-mysql-perl
libmyodbc
libmysqlclient15off
mysql-client-5.0
mysql-common
mysql-server-5.0
mysql-server-core-5.0
odbcinst1debian1
php5
php5-cli
php5-common
php5-odbc
unixodbc

/etc/odbc.ini
------------
myodbc3 = MySQL ODBC 3.51 驅動程式

[myodbc3]
Driver = /usr/lib/odbc/libmyodbc.so
Description = MySQL ODBC 3.51 驅動程式
Server = localhost
Port = 3306
User = shyam
Password = mypass
Database = mysql
Option = 3
Socket = /var/run/mysqld/mysqld.sock

/etc/odbcinst.ini
----------------
[MySQL ODBC 3.51 Driver]
Description = MySQL 驅動程式
Driver = /usr/lib/odbc/libmyodbc.so
Setup = /usr/lib/odbc/libodbcmyS.so
CPTimeout =
CPReuse =
UsageCount = 1

我的 PHP 腳本
------------

<html>
<body>
<?
$conn = odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=mysql", "shyam", "mypass");

$sql = "SELECT user from user";
$rs = odbc_exec($conn,$sql);
echo "<table><tr>";
echo "<th>使用者名稱</th></tr>";
while (odbc_fetch_row($rs))
{
$user = odbc_result($rs,"user");
echo "<tr><td>$user</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>

</body>
</html>
simonr at no2sp at m dot cogapp dot com
20 年前
使用 ODBC 建立與 MS-SQL 的無 DSN 連線

<?php

$connection_string
= 'DRIVER={SQL Server};SERVER=<伺服器名稱>;DATABASE=<資料庫名稱>';

$user = '使用者名稱';
$pass = '密碼';

$connection = odbc_connect( $connection_string, $user, $pass );

?>

伺服器名稱 指的是資料庫伺服器的名稱

資料庫名稱 指的是資料庫的名稱

注意,我只在 Windows 系統上使用 Microsoft ODBC 驅動程式測試過這個方法。
drew at pixelburn dot net
15 年前
[Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱,而且未指定預設驅動程式

如果您在 64 位元版本的 Windows 上持續遇到這個問題,例如 Server 2008,而且其他解決方案都無效。

在 64 位元 Windows Server 作業系統中,有兩個 ODBC 管理員。當您開啟 ODBC/DSN 系統的常用選單時,它是針對 64 位元 ODBC 管理員,而 32 位元應用程式 (VB 6.0、PHP 5) 無法使用這些 DSN。

32 位元 ODBC 管理員的位置如下:

C:\Windows\SysWOW64\odbcad32.exe
cs at coolspot dot de
23 年前
我們努力嘗試從 PHP 連線到我們的 IBM DB2 RS/6000 伺服器。在使用 --ibm-db2= 選項編譯之後,它可以運作,但速度慢得難以置信。
非常慢。

不,只是測試一些選項,我們發現它從非常慢(取得 100 筆記錄需要 1 到 10 秒)變成快速存取(幾乎與從 Servlet 使用 JDBC 的速度相同),只需要 0.2 到 0.3 秒。

我們只是在 odbc_connect 中加入了選用的 Cursortype 參數,並使用 cursortype SQL_CUR_USE_ODBC,就產生了這樣的變化!

希望這能幫助任何必須連線到 DB2 的人 ;)
匿名
16 年前
這對某些人來說可能很明顯,但如果您在 Linux 中使用 FreeTDS,以下這個小技巧可能會節省您一些時間

請確保 freetds.conf 中有以下兩行:
dump file = /tmp/freetds.log
dump file append = yes

這樣您就可以在除錯問題的背景中使用 tail -f 監控它。這幫助我在 CentOS Linux 上找到我的問題

1) tsql 測試可以運作
2) isql 測試可以運作
3) 從 Shell 執行 PHP 中的 ODBC 連線也可以運作
4) 但透過 Apache 執行 PHP 就無法運作。

我的 /tmp/freetds.log 檔案告訴我
net.c:168:Connecting to MYDBSERVER port MYDBPORT
net.c:237:tds_open_socket: MYDBSERVER:MYDBPORT: Permission denied

答案是我的防火牆/SELinux 拒絕 Apache 程序存取連線到遠端 MSSQL 資料庫埠,但我的 Shell 帳戶卻可以。
lomaky at yahoo dot com
23 年前
// 簡單連線


$cnx = odbc_connect('cliente','Administrador','');
//查詢
$SQL_Exec_String = "select * from Clientes";
//執行查詢
$cur = odbc_exec( $cnx, $SQL_Exec_String );
echo "<table border=1><tr><th>身分證字號</th><th>姓名</th>".
"<th>代碼</th><th>城市</th></tr>\n";
while( odbc_fetch_row( $cur ) ) {
$Dni = odbc_result( $cur, 1 );
$Nombre = odbc_result( $cur, 2 );
$codigo = odbc_result( $cur, 3 );
$ciudad = odbc_result( $cur, 4 );
echo "<tr><td>$Dni</td><td>$Nombre</td>".
"<td>$codigo</td><td>$ciudad</td></tr>\n";
}
echo "</table>";
aamaral at 0kbps dot net
19 年前
關於透過 ODBC 連線到 Network Sybase SQL Anywhere 8 伺服器的兩個補充說明。

我使用 PHP5 CLI 二進位檔撰寫了一個腳本來監控目錄的變更,並在偵測到變更時更新 Network Server SQL Anywhere 8 資料庫。理想情況下,我的程式會無限期地執行,並在適當的時候執行 odbc_connect()/odbc_close()。然而,似乎一旦連線後,ODBC 工作階段的活動時間限制為 30 秒,之後連線就會失效,無法再執行任何查詢。它會從 ODBC 驅動程式傳回一個通用的「驗證違規」錯誤。

以下是一個例子

<?php
$conn
=odbc_connect($connect_string,'','');
$result=odbc_exec($qry,$conn); //傳回資料
sleep(31);
$result=odbc_exec($qry,$conn); //"驗證違規"
?>

此外,odbc_close() 似乎並沒有真正關閉連線(至少在使用 Network SQL Anywhere 8 時是如此)。執行 odbc_close() 後,資源將無法再使用,但就伺服器而言,連線仍然存在。連線直到 PHP 腳本結束後才會真正關閉,這很遺憾,因為後續的 odbc_connect() 命令似乎會重複使用已關閉的失效連線。

我的解決方法是在資料庫更新完成後,讓我的腳本完全結束。然後我在批次檔中呼叫我的腳本,並將其放入一個無窮迴圈中。

我不確定這是否是 PHP 的錯誤,但我認為應該分享出來,以免其他人也為了這個問題而煩惱…
Ceeclipse
16 年前
「傳回 ODBC 連線 ID,如果發生錯誤則傳回 0 (FALSE)。」

請注意,以下 PHP5 程式碼將無法正常運作

<?php

if( odbc_connect("test", "test", "test") === false ) {
// 您的錯誤報告/處理程式碼放在這裡..
}

?>

odbc_connect() 傳回的是整數,而不是 PHP5 的布林值!
Abhinav
12 年前
請確保 MSAccess 資料庫格式為「.mdb」。
如果是「.accdb」,則無法使用!
Grisu
20 年前
透過 ODBC 連線到網路上的 MS-Access 資料庫

在 Windows XP Pro 上執行的 Apache 2.0.47 和 PHP 4.3.4

如果您遇到錯誤
「[Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱,而且未指定預設驅動程式,SQLConnect 中的 SQL 狀態 IM002」

您應該確保完成以下操作:

ODBC 連結必須是系統 DSN,而不是使用者 DSN。設定您的 ODBC 連結,然後使用 regedt32 修改您的設定。前往 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC_INI 並開啟您的 ODBC 連結。「DBQ」欄位包含資料庫的路徑。此路徑必須不含磁碟機代號(例如「M:」),因此請將其更改為「\\伺服器\資料夾\database.mdb」。每次使用 Windows 工具修改 ODBC 設定時,此設定都會更改,因此請確保您在之後執行此操作。

然後,前往系統管理中的「服務」區段。選取您的 Apache 模組的屬性。在登入區段中,您必須確保使用有效的網路伺服器使用者帳戶登入。

請注意,即使如此,您仍然沒有權限存取連結資料庫中的連結資料表。

有趣的是,在 Win98 上並不需要所有這些操作。
aamaral at 0kbps dot net
19 年前
若要連線到 Windows 上的 Sybase SQL Server Anywhere 8.0,請使用以下設定:

<?php
//================================================================

// 設定連線參數
$db_host = "server.mynetwork";
$db_server_name = "Dev_Server";
$db_name = "Dev_Data";
$db_file = 'c:\dbstorage\dev.db';
$db_conn_name = "php_script";
$db_user = "dbuser";
$db_pass = "dbpass";

//================================================================
$connect_string = "Driver={Adaptive Server Anywhere 8.0};".
"CommLinks=tcpip(Host=$db_host);".
"ServerName=$db_server_name;".
"DatabaseName=$db_name;".
"DatabaseFile=$db_file;".
"ConnectionName=$db_conn_name;".
"uid=$db_user;pwd=$db_pass";

// 連線到資料庫
$conn = odbc_connect($connect_string,'','');

// 查詢
$qry = "SELECT * FROM my_table";

// 取得結果
$result = odbc_exec($conn,$qry);

// 從結果取得資料
while ($data[] = odbc_fetch_array($result));

// 釋放結果
odbc_free_result($result);

// 關閉連線
odbc_close($conn);

// 顯示資料
print_r($data);

//================================================================
?>
phobo_AT_paradise.net.nz
24 年前
如果您使用 Openlink 連接到 Microsoft Access 資料庫,您很可能會發現 odbd_connect() 可以正常運作,但會發現任何查詢都會產生奇怪的結果;SELECT 查詢會失敗,並顯示 "[OpenLink][ODBC][Driver]Driver not capable, SQL state
S1C00 in SQLExecDirect in xxxx.php on line xx",而 INSERT / DELETE 查詢會警告 "No tuples available at this result index"。

在這種情況下,請使用 SQL_CUR_USE_ODBC 游標!

這讓我困惑了很長一段時間;因為看起來是 odbc_exec() 出了問題... :)

Siggy
ewilde aht bsmdevelopment dawt com
14 年前
一旦您設定好 UnixODBC 與 Informix 的連線(如其他地方所述,例如 http://www.unixodbc.org/),以下 PHP 程式碼將透過其 DSN 存取資料庫

<?php
// 我們必須設定這些環境變數才能讓 Informix 運作。可以
// 在這裡設定,或是在 php.ini 中設定。
putenv("INFORMIXDIR=/usr/share/informix");
putenv("ODBCINI=/usr/local/unixODBC/etc/odbc.ini");

// 開啟與資料庫的連線。
if (!($con = odbc_connect("CollectOh", "", "")))
echo
"<p>連線到 CollectOh 失敗。</p>\n";
else
{
// 讓我們嘗試列舉資料庫中的所有表格(這裡沒有
// 「show tables」可以使用)。
if (($res = odbc_exec($con, "select * from SYSTABLES")))
{
echo
"<p>\n";
odbc_result_all($res);
echo
"</p>\n";
}

// 關閉連線,像乖寶寶一樣。
odbc_close($con);
}
?>
aurelien marchand
19 年前
我花了三天時間努力嘗試將我們的 Linux 內網伺服器透過 ODBC 和 PHP 在 Mandrake 上連接到我們的 AS400 資料庫。我安裝了所有我認為可以運作的東西,但我仍然收到:odbc_connect(): SQL error: Missing server name, port, or database name in call to CC_connect., SQL state IM002 in SQLConnect 這個錯誤。

請注意,isql 可以正常運作,但 php 無法連線。

解決方案
我找到了一個名為 php-unixODBC 的 PHP 模組(與 php-odbc 相對)。安裝完成後(即使它不是適用於正確的 PHP 版本),我發現它沒有將檔案放置在正確的位置。ini 檔案位於 /etc/php/ 中,而不是 /etc/php.d/ 中,所以我將它移到那裡,並將舊的 /etc/php.d/36_odbc.ini 重新命名為 /etc/php.d/36_odbc.ini.sav,這樣我就有了 /etc/php.d/36_unixodbc.ini。我重新啟動了 httpd 伺服器,現在我可以存取 as400 了。

如果您有任何問題,請發送電子郵件至 _artaxerxes2_at_iname_dot_com(不含底線)。
SilencerX at optidynamic dot com
23 年前
如果您像我一樣使用 openlink 從 Unix 存取 NT/Win2k 電腦上的 MS Access 資料庫,並且發現您的 INSERT 查詢沒有執行任何動作也沒有回報任何錯誤,請使用 odbc_pconnect()。

我不明白發生了什麼事,經過一番研究後,我發現他們建議在 MySQL 中使用 mysql_pconnect() 進行 INSERT 查詢。我在 odbc 中嘗試了同樣的做法,它成功了。
osiris at rich-howard dot co dot uk
22 年前
想在此補充一點說明。我正在 Windows XP 上使用 Apache 2.0.39 和 PHP 4.2.2。

在 dsn 字串中不要使用大寫字母會很有幫助。

也想評論一下關於使用系統 DSN 優於檔案 DSN 的文章。有很多文章說要使用系統而不是檔案,但沒有任何文章(我看到的)解釋原因。

基本上:檔案 DSN 特定於目前的使用者,因此網際網路訪客使用者帳戶沒有權限存取它們。系統 DSN 則適用於所有人。

此致

Osiris :)
匿名
16 年前
我在 Ubuntu 系統上使用 mdbtools 來存取 .mdb 檔案,透過 ODBC 驅動程式(以及 PHP)。
它的功能非常少,幾乎無法使用。
rotwhiler at hotmail dot com
19 年前
對於在 MS Access ODBC 請求中使用 WHERE 子句遇到問題的人,以下是我的發現:發送到 Access 的 SQL 請求必須在條件式周圍加上引號。

$sel = "SELECT * FROM table1 WHERE cust_id = 'cust1'";
輸出
SELECT * FROM table1 WHERE cust_id = 'cust1'
而且可以正常運作。

$sel = "SELECT * FROM table1 WHERE cust_id = cust1";
輸出
SELECT * FROM table1 WHERE cust_id = cust1
這樣就無法正常運作。

以下是完整的程式碼區塊
$conn = odbc_connect("database1","","");
$sel = "SELECT * FROM table1 WHERE cust_id = 'cust1'";
$exec = odbc_exec($conn,$sel);
while($row = (odbc_fetch_array($exec)))
$serv[odbc_result($exec,'label')] = $row;
print_r($serv);
atze at o2o dot com dot au
20 年前
要在 Unix 伺服器上透過 ODBC 連線到 SQL 資料庫,可以使用以下解決方案之一。

1. 建立 odbc.ini (~/.odbc.ini)

[PostgreSQL]
Description = PostgreSQL template1
Driver = PostgreSQL
Trace = Yes
TraceFile = /tmp/odbc.log
Database = PerfTest
Servername = localhost
UserName = boss
Password = BigBoss
Port = 5432
Protocol = 6.4
ReadOnly = Yes
ConnSettings =

[Default]
Driver = /local/lib/libodbc.so

2. 指定 DSN

function DBCALL($SQL)
{
$U = "boss";
$DB = "PerfTest";
$P = "BigBoss";
$Srv = "localhost";
$DSN = "Driver=PostgreSQL;Server=$Srv;Database=$DB";

echo "嘗試連線到 $DSN\n";
if ($CID = odbc_connect ("$DSN","$U","$P",SQL_CUR_USE_ODBC))
{
echo "仍在嘗試 CID = $CID\n";
if ($RES = odbc_exec($CID, $SQL))
{
echo "RES = $RES\n";
print_r($RES);
echo "\n";

$NR = odbc_num_rows($RES);

<snip>

希望以上資訊對您有所幫助。
cnewbill at onewest dot net
24 年前
許多人在 Linux 上設定這個東西時都遇到相同的問題。兩天前我被指派處理這個問題,而且我成功了。我的組合是 PHP4 RC2、Easysoft OOB 和 unixODBC。這三個產品可以很好地搭配使用,而且安裝非常簡單。更多資訊:http://www.easysoft.com/products/oob/main.phtml. 也適用於 Perl 的 DBI。
jeremy at austin.ibm.com
21 年前
關於使用 PHP 和 DB2 的快速說明,我花了幾個小時和幾次重新編譯才找出它無法運作的原因。

將以下程式碼行放入任何腳本中

putenv("DB2INSTANCE=db2inst1");

或者,以某種方式在您的網路伺服器環境中設定它。
cjbauer2 at hotmail dot com
9 年前
/* 使用 PHP 連線到 Microsoft Access */
$conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};
Dbq=$mdb_Filename", $user, $password);

這在 Windows 伺服器上**無法運作**。
需要改成這樣
$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=......

將變數 $mdb_Filename 指向...
Data Source=C:\inetpub\wwwroot\php\mdb_Filename
或虛擬目錄指向的任何位置。
fc99 at smm dot de
23 年前
如果您不想在網頁伺服器上指定登入憑證,您可以將登入欄位留空,以使用整合式 Windows 安全性,如下所示

odbc_connect("DSN=DataSource","","");

請確定您也已將系統 DSN 切換為整合式安全性!

(當然,僅適用於 Windows 電腦)

flo.
sven dot delmeiren at cac dot be
18 年前
您好,

有關如何使用 Merant ODBC 驅動程式連線到 Linux 上的 Progress 資料庫的說明,請參閱 http://www.progteg.com/english/documents.html.

此致,

Sven Delmeiren
Computers & Communications NV
gekkeprutser at gmail dot com
18 年前
我也遇到過這個訊息的問題:([ODBC SQL Server 驅動程式]配置 Sybase Open Client Context 失敗)。該訊息僅在伺服器運行幾個小時後出現,所以我預期是資源耗盡。然而,這是一個設定問題,我認為這可能也對其他人有幫助。

除了按照 oottavi 上述說明放置 <?php putenv ("SYBASE=c:\sybase"); ?> 之外,我還必須透過設定 <?php putenv ("LC_ALL=default"); ?> 來指定地區設定。

即使我的地區設定已經設定為有效值 (en_US),我仍然必須設定此環境變數才能使其運作。
To Top