PHP: Hypertext Preprocessor (original) (raw)

odbc_pconnect

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

odbc_pconnect — Abre una conexión persistente a un origen de datos

Descripción

odbc_pconnect() se comporta de manera similar a odbc_connect(), pero la conexión abierta no se cierra realmente cuando el script finaliza. Las siguientes solicitudes que se realicen a una conexión cuyosdsn, user,password sean los mismos que esta (conodbc_connect() y odbc_pconnect()) reutilizarán la conexión abierta.

Valores devueltos

Devuelve una conexión ODBC, o [false](reserved.constants.php#constant.false) en caso de error.

Historial de cambios

Versión Descripción
8.4.0 odbc expects an Odbc\Connection instance now; previously, a resource was expected.
8.4.0 This function returns a Odbc\Connection instance now; previously, a resource was returned.
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 includepwd 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 containsuid, and password is only ignored ifdsn contains pwd.

Notas

Nota: Las conexiones persistentes no tienen ningún efecto si PHP se utiliza como CGI.

Found A Problem?

etsai at email dot com

24 years ago

`The following constants are defined for cursortype:

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.

`

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.

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.

`