dbx_connect

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_connect接続/データベースをオープンする

説明

object dbx_connect ( mixed $module , string $host , string $database , string $username , string $password [, int $persistent ] )

データベースへの接続をオープンします。

パラメータ

module

module パラメータには文字列または定数を設定します。 定数の使用が推奨されます。指定可能な値を以下に示しますが、これは 該当するモジュールが実際にロードされている場合のみ動作することに注意してください。

  • DBX_MYSQL あるいは "mysql"
  • DBX_ODBC あるいは "odbc"
  • DBX_PGSQL あるいは "pgsql"
  • DBX_MSSQL あるいは "mssql"
  • DBX_FBSQL あるいは "fbsql"
  • DBX_SYBASECT あるいは "sybase_ct"
  • DBX_OCI8 あるいは "oci8"
  • DBX_SQLITE あるいは "sqlite"

host

SQL サーバーのホスト。

database

データベース名。

username

ユーザー名。

password

パスワード。

persistent

persistent パラメータに DBX_PERSISTENT を設定すると、持続的接続が作成されます。

hostdatabaseusername および password のパラメータを受け付けますが、抽象化されたモジュールの接続関数によっては これらがすべて使われるわけではないこともあります。

返り値

dbx_connect() は成功時にオブジェクト、エラー時に FALSE を返します。接続は確立したもののデータベースが選択できなかった場合には、 接続はクローズされて FALSE を返します。

返される object は 3 つのプロパティを有します。

database
現在選択されているデータベースの名前。
handle

接続されたデータベースの有効なハンドルで、モジュール固有の関数に (必要に応じて)使用されます。

<?php
$link 
dbx_connect(DBX_MYSQL"localhost""db""username""password");
mysql_close($link->handle); // dbx_close($link) の方が良いかもしれません
?>

module
dbx の内部でのみ使用され、上で述べたモジュール番号を表します。

変更履歴

バージョン 説明
5.0.0 DBX_SQLITE が追加されました。
4.3.0 DBX_OCI8 が追加されました。
4.2.0 DBX_SYBASECT が追加されました。
4.1.0 DBX_FBSQL が追加されました。

例1 dbx_connect() example

<?php
$link 
dbx_connect(DBX_ODBC"""db""username""password"DBX_PERSISTENT)
    or die(
"接続できませんでした");

echo 
"接続に成功しました";
dbx_close($link);
?>

注意

注意:

モジュール固有のドキュメントも参照ください。

参考

  • dbx_close() - オープンされた接続/データベースを閉じる

add a note add a note

User Contributed Notes 5 notes

up
0
Anonymous
6 years ago
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');
up
0
Jon Moss
9 years ago
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
up
0
BDKR at melnabone at mindless dt com
11 years ago
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
up
0
davidbullock at tech-center dot com
12 years ago
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".
up
0
jeremy at deadbeef dot com
13 years ago
Pear::DB seems like a better idea than this.  See http://pear.php.net
To Top