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
$module
, string $host
, string $database
, string $username
, string $password
[, int $persistent
] )Öffnet eine Verbindung zu einer Datenbank.
Parameter-Liste
-
module -
Der Parameter
modulekann entweder einen String, oder eine Konstante enthalten, wobei letztere Form präferiert wird. Die möglichen Werte sind nachstehend aufgelistet, aber bedenken Sie bitte, dass diese nur funktionieren, wenn das Modul gerade geladen ist.-
DBX_MYSQLoder "mysql" -
DBX_ODBCoder "odbc" -
DBX_PGSQLoder "pgsql" -
DBX_MSSQLoder "mssql" -
DBX_FBSQLoder "fbsql" -
DBX_SYBASECToder "sybase_ct" -
DBX_OCI8oder "oci8" -
DBX_SQLITEoder "sqlite"
-
-
host -
Der Host des SQL-Servers
-
database -
Der Datenbankname
-
username -
Der Username
-
password -
Das Passwort
-
persistent -
Der
persistent-Parameter kann aufDBX_PERSISTENTgesetzt werden. In diesem Fall wird eine persistente Verbindung aufgebaut.
Die Parameter host,
database, username
und password werden erwartet, werden aber
abhängig von den Verbindungsfunktionen für das abstrahierte Modul
nicht immer verwendet.
Rückgabewerte
Gibt im Erfolgsfall ein Objekt, im Fehlerfall FALSE zurück. Wenn eine
Verbindung hergestellt, jedoch keine Datenbank ausgewählt werden konnte,
wird die Verbindung geschlossen und FALSE zurückgegeben.
Das zurückgegebene object hat drei Eigenschaften:
- database
- Der Name der aktuell ausgewählten Datenbank.
- handle
-
Ein gültiges Handle für die verbundene Datenbank, und als solches kann es wenn nötig auch in modulspezifischen Funktionen verwendet werden.
<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // dbx_close($link) wäre hier besser
?> - module
- Die oben erwähnte Modulnummer. Wird ausschließlich dbx-intern verwendet.
Changelog
| Version | Beschreibung |
|---|---|
| 5.0.0 |
DBX_SQLITE eingeführt.
|
| 4.3.0 |
DBX_OCI8 eingeführt.
|
| 4.2.0 |
DBX_SYBASECT eingeführt.
|
| 4.1.0 |
DBX_FBSQL eingeführt.
|
Beispiele
Beispiel #1 dbx_connect()-Beispiel
<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
or die("Fehler beim Verbinden");
echo "Verbindung hergestellt";
dbx_close($link);
?>
Anmerkungen
Hinweis:
Konsultieren Sie bitte auch die modulspezifische Dokumentation.
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
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
