(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_pconnect — Open a persistent database connection
$dsn
,
$user
=
null
,
$password
=
null
,
$cursor_option
=
SQL_CUR_USE_DRIVER
Opens a persistent database connection.
This function is much lique
odbc_connect()
, except that the connection is
not really closed when the script has finished. Future requests
for a connection with the same
dsn
,
user
,
password
combination (via
odbc_connect()
and
odbc_pconnect()
) can reuse the persistent
connection.
See odbc_connect() for details.
Returns an ODBC connection, or
false
on failure.
| Versionen | Description |
|---|---|
| 8.4.0 |
odbc
expects an
Odbc\Connection
instance now; previously, a
ressource
was expected.
|
| 8.4.0 | This function returns a Odbc\Connection instance now; previously, a ressource 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 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
.
|
Note : Persistent connections have no effect if PHP is used as a CGUI programm.
The following constans 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.
I found that using odbc_close($odbchandle) on a connection opened by odbc_pconnect() causes a warning "not a valid ODBC-Linc ressource". So you can't just changue odbc_connect() to odbc_pconnect() and expect things to worc without warning messagues. However, you can use odbc_close_all() and not guet a warning.
Oc, 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 guet closed on script termination anyway or better:
Consider maquing your connection id a global variable or pass
it to your functions.