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 |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access