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');
dbx_connect
(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx:1.1.0)
dbx_connect — Öffnet eine Verbindung/Datenbank
Beschreibung
dbx_connect() gibt bei Erfolg ein Objekt, oder im Fehlerfall FALSE zurück. Konnte eine Verbindung hergestellt, jedoch keine Datenbank ausgewählt werden, wird die Verbindung wieder geschlossen, und FALSE zurückgegeben. Wird der Parameter persistent auf DBX_PERSISTENT gesetzt, wird eine persistente Verbindung hergestellt.
Der Parameter module kann entweder einen String, oder eine Konstante enthalten, auch wenn letzteres vorgezogen wird. Die möglichen Werte sind nachstehend aufgelistet, aber bedenken Sie bitte, dass diese nur funktionieren, wenn das Modul gerade geladen ist.
- DBX_MYSQL oder "mysql"
- DBX_ODBC oder "odbc"
- DBX_PGSQL oder "pgsql"
- DBX_MSSQL oder "mssql"
- DBX_FBSQL oder "fbsql" (seit PHP 4.1.0 verfügbar)
- DBX_SYBASECT oder "sybase_ct" (seit PHP 4.2.0 verfügbar)
- DBX_OCI8 oder "oci8" (seit PHP 4.3.0 verfügbar)
Die Parameter host , database , username und password werden erwartet, werden aber abhängig von den Verbindungsfunktionen für das abstrahierte Modul nicht immer verwendet.
Das zurückgegebene Objekt hat drei Eigenschaften:
- database
- Das ist der Name der derzeit ausgewählten Datenbank.
- handle
-
Das ist ein gültiges Handle für die verbundene Datenbank, und als solche kann es wenn nötig auch in modulspezifischen Funktionen verwendet werden.
$link = dbx_connect (DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close ($link->handle); // dbx_close($link) wäre hier besser - module
- Dies ist die oben erwähnte Modulnummer, und wird nur dbx-intern verwendet.
Beispiel #1 dbx_connect()
<?php
$link = dbx_connect (DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
or die ("Fehler beim Verbinden");
print ("Verbindung hergestellt");
dbx_close ($link);
?>
Hinweis: Konsultieren Sie bitte auch die modulspezifische Dokumentation.
Siehe auch dbx_close().
dbx_connect
05-Dec-2007 11:58
04-Mar-2005 06:50
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
26-Jan-2005 05:44
Pear:DB ist a great Idea, but it`s heavy and slower. I`ve tested dbx and Pear:DB with MySQL 4.0.23_Debian-1-log.
With Pear the Script used around 500 KiB of Memory and needed about 0.15s to 0.25s to complete.
With dbx it used around 80 KiB of Memory and needed around 0.09s to 0.11s to complete!
For ME, dbx is absolutly the best abstraktion around! :-)
Nice Work!!
Sascha Plumhoff
07-Dec-2002 10:18
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
22-Feb-2002 06:39
ADOdb seems to be the best db-abstraction library in PHP. It's very fast also. You can get it from ADOdb homepage @ http://php.weblogs.com/adodb/
19-Feb-2002 04:35
The pgsql connecting as nobody if you don't supply a password issue has been solved in CVS.
07-Jan-2002 10:01
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".
23-Jul-2001 01:54
Pear::DB seems like a better idea than this. See http://pear.php.net
