Package of classes that provide DBMS independent access and management of databases.
Currently it features:
o BSD style license.
o Dual API call forms:
* Direct driver class object calls
* Global function calls
o Set of functions that call the selected DBMS driver objects functions supporting when possible:
* Database connection setup with support for connection strings
* Operation error handling
* Query constant data conversion
* Direct queries
* Prepared queries
* Query result rows random access
* Retrieve a limit range of rows of a SELECT query.
* Nested transactions
* Large object fields (BLOBs - storing files in the database)
* Database object creation (tables, indexes, sequences)
* DBMS driver supported feature query
o DBMS Drivers classes that support the most important databases being used on the Web.
o Driver conformance test suite to verify if the driver classes are working and features are properly implemented.
o A parser class that is able to interpret DBMS independent database schemas file defined in a custom XML format supporting the following types of objects:
* Tables with fields of the types: text, integer, boolean, date, time, timestamp, decimal, float, character large objects (CLOBs) and binary large objects (BLOBs), auto-increment.
* Primary keys
* Indexes
* Auto incremented sequences
o A manager class that is able to:
* Install a new database from a schema description interpreted by the parser class.
* Ability to compare a previously installed schema with a new schema and only install the changes without affecting data stored after the previous installation or update.
* Dump database structure and contents in the same XML format handled by the parser allowing for moving data between databases of different DBMS vendors.
* Reverse engineer schemas of already installed databases
This is an abstraction package to access several types of SQL databases.
Its features:
- Drivers to access MySQL, PostgreSQL and InterBase or FireBird
- Can execute SQL query templates supporting conditional blocks
- Caching of query results
- Place holder query arguments
- Execute operations to select and count total number of resulting rows
- Retrieve query results in different modes: all result rows, one row, one column, one cell, associative array, multidimensional associative array, linked tree, etc.
- Support to watch and debug query errors
- Query logging that includes query results and caller line number
- Support to native prepared queries
- Access to BLOBs
Please note: there is a lot of usage examples at http://en.dklab.ru/lib/DbSimple/#list1
E.g. MySQL connect:
The Array Storage class can store and retrieve arrays in textual format with optional compression with the zlib PHP extension.
The class just converts array data into PHP code that would rebuild the array when run. Then it can compress the generated code so it can take less space to store for instance in a database BLOB field.