(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)
dbx_connect — Open a connection/database
$module
, string $host
, string $database
, string $username
, string $password
[, int $persistent
] )Opens 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 to
DBX_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:
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
?>
版本 | 说明 |
---|---|
5.0.0 |
Introduced DBX_SQLITE .
|
4.3.0 |
Introduced DBX_OCI8 .
|
4.2.0 |
Introduced DBX_SYBASECT .
|
4.1.0 |
Introduced DBX_FBSQL .
|
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.
Anonymous (2007-12-05 23:58:13)
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');
Jon Moss (2005-03-04 06:50:55)
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
BDKR at melnabone at mindless dt com (2002-12-07 10:18:02)
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
davidbullock at tech-center dot com (2002-01-07 10:01:43)
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".
jeremy at deadbeef dot com (2001-07-23 13:54:17)
Pear::DB seems like a better idea than this. See http://pear.php.net