Installation
Un-tar the adodb_lite??.tar.gz file into the directory that contains your website. If you are replacing ADOdb you will need to change the ADOdb path to reflect the new install.
If this is a new install you will need to add an include/require statement to the PHP files for your website.
Example:
require_once '/home/www/yourdirectory/adodb_lite/adodb.inc.php';
|
Connecting to your database
You will need to designate the type of database server you will be using.
$db = ADONewConnection('databasetype');
| |
The following databases are supported:
Databasetype Designator |
Database Name |
fbsq |
Frontbase |
maxdb |
Max DB |
msql |
Mini SQL |
mssql |
Microsoft SQL |
mysql |
MySql |
mysqli |
MySql Improved |
mysqlt |
MySql w/transactions |
postgres |
PostGres |
postgres64 |
PostGres 6.4 |
postgres7 |
PostGres 7 |
postgres8 |
Postgres 8 |
sqlite |
SqLite |
sqlitepo |
SqLite Pro |
sybase |
Sybase |
sybase_ase |
SyBase ASE |
If the database does not exist and you would like ADOdb Lite to automatically create the database then set the createdatabase switch to true.
$db->createdatabase = true ;
|
If you would like for every query along with the error result echoed set the debug flag to true. The default setting is false.
New Connection
$result = $db->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");
|
or persistent connection
$result = $db->PConnect("$dbhost", "$dbuname", "$dbpass", "$dbname");
|
or force a new connection
$result = $db->NConnect("$dbhost", "$dbuname", "$dbpass", "$dbname");
$dbhost = localhost or url/ip address IE: http://0.0.0.0 or http://www.dbserver.com
$dbuname = The Username needed to access the database
$dbpass = Optional password for accessing the database
$dbname = The name of the database you will be accessing
|
Example:
require_once '/home/www/yourdirectory/adodb_lite/adodb.inc.php';
$db = ADONewConnection('databasetype');
$db->createdatabase = true ;
$result = $db->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");
|
Optional Connection Flags
Mysql/Mysqli/Mysqlt:
$db->port = Port number to connect through.
$db->clientflags = The client_flags parameter can be a combination of the following constants: MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE. (PHP 4.3.0 or higher)
|
Mysqli:
$db->socket = specifies the socket or named pipe that should be used
|
Postgres(all):
$db->port = Port number to connect through. |
DSN (Data Source Name) Connection Method
You can perform your driver selection and connection all at the same time if you use a DSN connection string instead of the databasetype. The DSN entry has been expanded to use the anchor symbol for the inclusion of modules.
$driver://$username:$password@$hostname/$database?options[=value]#$modules
$driver = Databasetype Designator listed in the table at the start of this page.
$username = The Username needed to access the database
$password = Optional password for accessing the database
$hostname = localhost or url/ip address IE: http://0.0.0.0 or http://www.dbserver.com
$database = The name of the database you will be accessing
$options = All Drivers - 'persist', 'persistent', 'debug', 'fetchmode'
Mysql (all) - 'port', 'clientflags'
Mysqli - 'socket'
Postgress (all) - 'port'
$modules = The modules that should be loaded. IE: pear, cache, extend, ect. |
The following modules are supported:
Module Designator |
Module Function |
pear |
Adds generic Pear Database Functions |
transaction |
Adds transaction support for databases that support it |
extend |
Adds little used but important ADOdb functions |
date |
Adds all ADOdb Database Date Functions |
object |
Adds all ADOdb Database Object Functions |
menu |
Adds all ADOdb Database Menu Functions |
adodblite |
Adds functions designed specifically for ADOdb Lite |
meta |
Adds all ADOdb Database Meta Functions |
perfmon |
Adds support for the Performance Monitor |
You can use only a single command to select your driver and connect to the database instead of two command strings.
require_once '/home/www/yourdirectory/adodb_lite/adodb.inc.php';
$flags = MYSQL_CLIENT_COMPRESS;
$dsn_string = 'mysql://user:junk@localhost/mydb?persist&clientflags=$flags#pear:extend';
$db = ADONewConnection($dsn_string);
|
The above example would create a persistent connection to a Mysql database using the mysql driver. The User name is user, password of junk, host address is localhost, with Mysql Compression enabled, the pear and extend modules are loaded.
ADOdb Lite Configuration File
ADOdb Lite uses a configuration file (adodb.config.php) to offer better compatability with ADOdb applications. You can designate the modules you need loaded when connecting to the database through the configuration file.
Example:
<?
/**
* ADOdb Lite Configuration File
*/
/**
* Set the $dbtype variable to the database designator.
* If this variable is enabled it will override the database designator
* entered in the ADONewConnection( $dbtype ) function. The database
* designator in a DSN string will be overridden but the rest of the DSN
* string will be used.
*
* You can place a DSN entry in the $dbtype variable if you would like to
* auto connect to your database.
*
* Example:
*
* $dbtype = "driver://username:password@hostname/database?options[=value]#modules";
*
* driver = Databasetype Designator listed in the table at the start of this page.
* username = The Username needed to access the database
* password = Optional password for accessing the database
* hostname = localhost or url/ip address IE: http://0.0.0.0 or
http://www.dbserver.com
* database = The name of the database you will be accessing
* options = All Drivers - 'persist', 'persistent', 'debug', 'fetchmode'
* Mysql (all) - 'port', 'clientflags'
* Mysqli - 'socket'
* Postgress (all) - 'port'
* modules = The modules that should be loaded. IE: pear, cache, extend, ect.
*
*/
// $dbtype = "mysql";
/**
* If you want to maintain compatability with the ADOdb ADONewConnection( $dbtype )
* function you should designate the modules you need loaded below. If you designate
* the modules below you do not need to designate them in
* ADONewConnection( $dbtype, $modules ).
*
* If you would like more than one module loaded at the same time concatinate the
* module names using a colon (:).
*
* Example:
* $modules = "pear:transaction:extend";
*
* The above example would load the Pear, Transaction and Extend modules
* automatically.
*/
$modules = "pear:extend";
?> |
In the above example the Pear and Extend modules will automatically be loaded when...
$db = ADONewConnection( $dbtype );
is executed. With the above change to the config file you would not need to change the ADONewConnection to...
$db = ADONewConnection( $dbtype, 'pear:extend');
This maintains 100% compatability for applications currently using ADOdb and makes it easier for them to change to ADOdb Lite.
I recommend using this configuration file for telling ADOdb Lite what modules should be used instead of using the DSN anchor tag or adding the modules to the ADONewCOnnection function. This will allow you to use ADOdb Lite with existing applications.
ADOdb Modules
The one departure I am going to make from 100% compatibility
with ADOdb is with modules. I have added a module system
to the package that will allow you to select the modules you
would like to have loaded. We will be offering two modules with
this release for Transaction and Pear.
There is a second command you can use when setting up your ADOdb
Lite.
$db = ADONewConnection($databasetype, $module);
|
The $module variable is optional.
Example:
$db = ADONewConnection('postgres7', 'transaction');
|
The above would load the Transaction Module for the Postgres 7
database.
The next module will be for database Caching.
Example:
$db = ADONewConnection('postgres7', 'cache');
|
If you need both modules:
$db = ADONewConnection('postgres7', 'transaction : cache');
|
I do not have a firm date for when database caching will be coming
out because I do not have a firm roadmap on how I will impliment
the code for database caching. I have a number of ideas that I
need to try out first.
Example:
require_once '/home/www/yourdirectory/adodb_lite/adodb.inc.php';
$db = ADONewConnection('databasetype', 'pear : transaction : cache' );
$db->createdatabase = true ;
$result = $db->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");
|
The above example would load the Pear, Transaction and Cache modules. This would allow you to use the commands/functions associated with those modules. There isn't a limit to how many modules that may be loaded.
Finally...
If you are familier with ADODB you will notice ADOdb Lite is started using the same parameters and commands. This makes it very easy for many sites to transfer over to ADOdb Lite.
|