odbc_connect

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

odbc_connectVerbindet mit einer Datenquelle

Beschreibung

odbc_connect(
    string $dsn,
    ?string $user = null,
    ?string $password = null,
    int $cursor_option = SQL_CUR_USE_DRIVER
): Odbc\Connection|false

Die Verbindungskennung, die von dieser Funktion zurückgegeben wird, wird von anderen ODBC-Funktionen benötigt. Es können mehrere Verbindungen nebeneinander bestehen, solange sie entweder unterschiedliche Datenbanken oder unterschiedliche Anmeldeinformation verwenden.

Bei einigen ODBC-Treibern können möglicherweise Probleme bei der Ausführung von komplexen Prozeduren auftreten. Die Fehlermeldung lautet dann etwa "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Die Verwendung von SQL_CUR_USE_ODBC kann diesen Fehler verhindern. Weiterhin unterstützen einige ODBC-Treiber den optionalen Parameter row_number der Funktion odbc_fetch_row() nicht. Auch in diesem Fall kann SQL_CUR_USE_ODBC helfen.

Parameter-Liste

dsn

Der Datenquellenname für die Verbindung. Alternativ kann auch eine DSN-lose Verbindungszeichenkette verwendet werden.

user

Der Benutzername. Dieser Parameter wird ignoriert, wenn dsn uid enthält. Um eine Verbindung herzustellen, ohne den Parameter user anzugeben, muss null verwendet werden.

password

Das Passwort. Dieser Parameter wird ignoriert, wenn dsn pwd enthält. Um eine Verbindung herzustellen, ohne den Parameter password anzugeben, muss null verwendet werden.

cursor_option

Dies setzt die Art des Cursors, der für diese Verbindung genutzt werden soll. Normalerweise wird er nicht benötigt, kann aber bei manchen ODBC-Treiberproblemen nützlich sein.

Folgende Konstanten sind als Cursortyp definiert:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Rückgabewerte

Gibt eine ODBC-Verbindung zurück. Bei einem Fehler wird false zurückgegeben..

Changelog

Version Beschreibung
8.4.0 odbc erwartet nun eine Instanz von Odbc\Connection; vorher wurde eine Ressource erwartet.
8.4.0 Diese Funktion gibt nun eine Instanz von Odbc\Connection zurück; vorher wurde eine Ressource zurückgegeben.
8.4.0 user and password are now nullable, they are now also optional and default to null.
8.4.0 Previously, using an empty string for password would not include pwd in the generated connection string for dsn. It is now generated to include a pwd which has an empty string as its value. To restore the previous behaviour password can now be set to null.
8.4.0 Previously, if dsn contained uid or pwd both user and password parameters were ignored. Now user is only ignored if dsn contains uid, and password is only ignored if dsn contains pwd.

Beispiele

Beispiel #1 DSN-lose Verbindung

<?php
// Microsoft SQL Server unter Verwendung des SQL Native Client 10.0 ODBC-Treibers - ermöglicht Verbindungen zu SQL 7, 2000, 2005 und 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" , '', '');
?>

Siehe auch

  • Für persistente Verbindungen: odbc_pconnect() - Öffnet eine persistente Datenbankverbindung