odbc_pconnect

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

odbc_pconnectÖffnet eine persistente Datenbankverbindung

Beschreibung

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

Öffnet eine persistente Datenbankverbindung.

Diese Funktion ist odbc_connect() sehr ähnlich. Der einzige Unterschied besteht darin, dass die Verbindung nach dem Ende des Skriptes erhalten bleibt. Folgende Verbindungen mit gleicher dsn, user und password-Kombination (über odbc_connect() und odbc_pconnect()) können dann die bestehende Verbindung weiterbenutzen.

Parameter-Liste

Details können der odbc_connect()-Dokumentation entnommen werden.

Rückgabewerte

Gibt eine ODBC-Verbindungskennung 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 und password sind nun nullable (akzeptieren den null-Wert); sie sind nun auch optional und standardmäßig auf null gesetzt.
8.4.0 Bisher wurde bei der Verwendung einer leeren Zeichenkette für password pwd nicht in die generierte Verbindungszeichenkette für dsn aufgenommen. Jetzt wird ein pwd mit einer leeren Zeichenkette als Wert erzeugt. Um das vorherige Verhalten wiederherzustellen, kann password nun auf null gesetzt werden.
8.4.0 Wenn dsn uid oder pwd enthielt, wurden bisher die Parameter user und password ignoriert. Jetzt wird user nur ignoriert, wenn dsn uid enthält, und password wird nur ignoriert, wenn dsn pwd enthält.

Anmerkungen

Hinweis: Persistente Verbindungen wirken nicht, wenn PHP als CGI-Programm verwendet wird.

Siehe auch

add a note

User Contributed Notes 3 notes

up
2
etsai at email dot com
24 years ago
The following constants are defined for cursortype:
- SQL_CUR_USE_IF_NEEDED
- SQL_CUR_USE_ODBC
- SQL_CUR_USE_DRIVER
- SQL_CUR_DEFAULT

With some ODBC drivers, executing a complex stored procedure may fail with an error similar to: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Using SQL_CUR_USE_ODBC may avoid that error. Also, some drivers don't support the optional row_number parameter in odbc_fetch_row(). SQL_CUR_USE_ODBC might help in that case, too.
up
0
wls at wwco dot com
24 years ago
I found that using odbc_close($odbchandle) on a connection opened by odbc_pconnect() causes a warning "not a valid ODBC-Link resource". So you can't just change odbc_connect() to odbc_pconnect() and expect things to work without warning messages. However, you can use odbc_close_all() and not get a warning.
up
-4
j_schrab at execpc dot com
24 years ago
Ok, learning time. As I was told by the PHP-DevTeam...


Multiple connections are supported, but when you try to connect with exactly the same parameters, an existing
connection will be reused, leading to the behaviour you see.

You can simply omit the calls to odbc_close() since
connections get closed on script termination anyway or better:
Consider making your connection id a global variable or pass
it to your functions.
To Top