Updated README, updated query_builder class to accept an array as well as an object

This commit is contained in:
Timothy Warren 2012-03-15 12:02:26 -04:00
parent da107cf6e3
commit 39d70bf808
4 changed files with 58 additions and 1 deletions

View File

@ -1,3 +1,47 @@
# Query
A query builder/abstraction layer.
A query builder/abstraction layer.
## Databases Supported
* Firebird
* MySQL
* PostgreSQL
* SQLite
* Others, via ODBC
## Requirements
* Pdo extensions for the databases you wish to use (unless it's Firebird, in which case, the interbase extension is required)
## Connecting
Create a connection array or object similar to this:
<?php
$params = array(
'type' => 'mysql',
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'port' => '3306',
'database' => 'test_db',
// Only required
// SQLite or Firebird
'file' => '/path/to/db/file',
);
$db = new Query_Builder($params);
The parameters required depend on the database.
### Running Queries
Query uses the same interface as CodeIgniter's [Active Record class](http://codeigniter.com/user_guide/database/active_record.html). However, it does not implement the `select_` methods, `count_all_results`, or `count_all`.
To retreive the results of a query, use the PDO methods `fetch` and `fetchAll`.
$query = $this->db->get('table_name');
$results = $query->fetchAll(PDO::FETCH_ASSOC);

View File

@ -62,6 +62,19 @@ class Query_Builder {
*/
public function __construct($params)
{
// Convert array to object
if (is_array($params))
{
$p = new StdClass();
foreach($params as $key => $val)
{
$p->$key = $val;
}
$params = $p;
}
$params->type = strtolower($params->type);
$dbtype = ($params->type !== 'postgresql') ? $params->type : 'pgsql';

Binary file not shown.

Binary file not shown.