dbx_connect
(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)
dbx_connect — Open a connection/database
说明
$module
, string $host
, string $database
, string $username
, string $password
[, int $persistent
] ) : objectOpens a connection to a database.
参数
-
module
-
The
module
parameter can be either a string or a constant, though the latter form is preferred. The possible values are given below, but keep in mind that they only work if the module is actually loaded.-
DBX_MYSQL
or "mysql" -
DBX_ODBC
or "odbc" -
DBX_PGSQL
or "pgsql" -
DBX_MSSQL
or "mssql" -
DBX_FBSQL
or "fbsql" -
DBX_SYBASECT
or "sybase_ct" -
DBX_OCI8
or "oci8" -
DBX_SQLITE
or "sqlite"
-
-
host
-
The SQL server host
-
database
-
The database name
-
username
-
The username
-
password
-
The password
-
persistent
-
The
persistent
parameter can be set toDBX_PERSISTENT
, if so, a persistent connection will be created.
The host
, database
,
username
and password
parameters are expected, but not always used depending on the connect
functions for the abstracted module.
返回值
Returns an object on success, FALSE
on error. If a connection has been
made but the database could not be selected, the connection is closed and
FALSE
is returned.
The returned object has three properties:
- database
- It is the name of the currently selected database.
- handle
-
It is a valid handle for the connected database, and as such it can be used in module-specific functions (if required).
<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // dbx_close($link) would be better here
?> - module
- It is used internally by dbx only, and is actually the module number mentioned above.
范例
Example #1 dbx_connect() example
<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
or die("Could not connect");
echo "Connected successfully";
dbx_close($link);
?>
注释
Note:
Always refer to the module-specific documentation as well.

User Contributed Notes 5 notes
If you get an error:
"Error while trying to retrieve text for error ORA-12154"
means that you didn't set the ORACLE_HOME, TNS_ADMIN and ORACLE_BASE variable.
If you are sure it's set as a system variable, you could solve the problem by use:
putenv('ORACLE_HOME=/your/oracle/home/beforebin');
The advantage that this has over Pear, Adob, and even Eclipse is speed. As some one put elsewhere,
"Yes, there is an advantage: Speed!
ext/dbx is written in C and has to be compiled into PHP. It's just faster then the PEAR classes."
Cheers,
BDKR
Currently to connect to the PostgreSQL backend, you have to supply both a username, and a password or the dbx pgsql module attempts to connect as "nobody".
Pear::DB seems like a better idea than this. See http://pear.php.net
I have been using dbx for a product at work and the need to use SQLite as a database popped up. However, I couldn't find any references to using it with dbx other than that you could and since SQLite doesn't seem to do the username password thing I was a little confused as to how to use it in dbx.
With a little research it seems that when using dbx_connect you only need to fill in the module name ('DBX_SQLITE') and the database (the file name for the database!) to get it working. e.g.
$link = dbx_connect(DBX_SQLITE, "", "some.db", "", "");
thought someone might find it useful, especially since it no longer required additional dll's in version 5.x