(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_connect — データソースに接続する
$dsn,$user = null,$password = null,$cursor_option = SQL_CUR_USE_DRIVER他の ODBC 関数を使用するには、 この関数が返す接続 ID が必要となります。 異なる db や異なる権限を使用する限り、 複数の接続を同時にオープンすることができます。
いくつかの ODBC ドライバでは、 複雑なストアド・プロシージャの実行時に次のようなエラーにより失敗する可能性があります。 "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it" SQL_CUR_USE_ODBC を使用することにより、 このようなエラーを回避できる可能性があります。 また、いくつかのドライバは odbc_fetch_row() においてオプションの row_number パラメータをサポートしません。 この場合でも、SQL_CUR_USE_ODBC により解決できる可能性があります。
dsn接続に使用するデータベースソース名。 あるいは、DSNではない接続文字列を使用することもできます。
user
ユーザー名。
dsn
に uid が含まれている場合、このパラメータは無視されます。
user を指定せずに接続する場合、null を指定します。
password
パスワード。
dsn
に pwd が含まれている場合、このパラメータは無視されます。
password を指定せずに接続する場合、null を指定します。
cursor_optionこの接続で使用するカーソルの型。 通常はこのパラメータは必要ありませんが、いくつかの ODBC ドライバの問題に対処する際には有用です。
次のような定数がカーソル型として定義されています。
ODBC 接続を返します。
失敗した場合に false を返します
| バージョン | 説明 |
|---|---|
| 8.4.0 |
引数 odbc は、Odbc\Connection クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、resource を期待していました。
|
| 8.4.0 | この関数は Odbc\Connection クラスのインスタンスを返すようになりました。 これより前のバージョンでは、resource を返していました。 |
| 8.4.0 |
user および password が nullable となりました。
また、省略できるようになり、デフォルトでは null となるようになりました。
|
| 8.4.0 |
以前のバージョンでは、password に空文字列を指定した場合、
dsn に対して生成される接続文字列に pwd が含まれていませんでした。
このバージョンからは、空文字列が値に指定された pwd を含んだ状態で生成されるようになりました。
以前の挙動に戻したい場合は、password に null を指定してください。
|
| 8.4.0 |
以前のバージョンでは、dsn に uid または pwd のいずれかが含まれていると、
user および password の両方が常に無視されていました。
このバージョンからは、dsn に uid が含まれている場合にのみ user が無視され、
dsn に pwd が含まれている場合にのみ password が無視されるようになりました。
|
例1 DSN なしの接続
<?php
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 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" , '', '');
?>