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 |
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.