©
本文档使用
php.cn手册 发布
(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.
[#1] 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');
[#2] 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
[#3] 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
[#4] 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".
[#5] 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