10.3. Connecting to a SQL Database
Problem
You want access to a SQL database.
Solution
Use the connect( )
method of PEAR DB:
require 'DB.php';
$dsn = 'mysql://david:foo!bar@localhost/test';
$dbh = DB::connect($dsn);
if (DB::isError($dbh)) { die ($dbh->getMessage()); }Discussion
To use PEAR DB, you must download it from PEAR at:
| http://pear.php.net/package-info.php?package=DB |
After loading the DB
functions
from DB.php, connect to the database with
DB::connect( ), execute the query with
$dbh->query( )
, and
retrieve each row with $sth->fetchRow( )
. The Solution example connects to
MySQL. To connect to Oracle instead, you just need to change
$dsn. This variable holds the
data
source name (DSN), a string that specifies which database to connect
to and how to connect to it. Here’s the value for
Oracle:
$dsn = 'oci8://david:foo!bar@ORAINST';
For PostgreSQL, $dsn is:
$dsn = 'pgsql://david:foo!bar@unix(/tmp/.s.PGSQL.5432)/test';
The PostgreSQL DSN is a little more complicated because it specifies that the connection should be made using a local Unix socket (whose pathname is /tmp/.s.PGSQL.5432) instead of a TCP/IP connection. In general, the form of a data source name is:
database_interface://user:password@hostname/database
The
database_interface
part of the DSN is the kind of database
you’re using, such as
Oracle, MySQL, etc. Currently,
PEAR supports 10 database backends, as
listed in Table 10-1.
Table 10-1. PEAR DB backends
|
Name |
Database |
|---|---|
|
|
FrontBase |
|
|
Interbase |