diff --git a/readme.md b/readme.md index 9f0f1bd9..179cfc47 100644 --- a/readme.md +++ b/readme.md @@ -12,10 +12,119 @@ Or you can download a latest package from http://dibiphp.com. In this package is also `Dibi.minified`, shrinked single-file version of whole Dibi, useful when you don't want to modify library, but just use it. +Dibi requires PHP 5.2.0 or later. It has been tested with PHP 5.5 too. + + +Examples +-------- + Refer to the `examples` directory for examples. Dibi documentation is available on the [homepage](http://dibiphp.com). -Dibi requires PHP 5.2.0 or later. It has been tested with PHP 5.5 too. +Connect to database: + +```php +// connect to database (static way) +dibi::connect(array( + 'driver' => 'mysql', + 'host' => 'localhost', + 'username' => 'root', + 'password' => '***', +)); + +// or object way; in all other examples use $connection-> instead of dibi:: +$connection = new DibiConnection($options); +``` + +SELECT, INSERT, UPDATE + +```php +dibi::query('SELECT * FROM users WHERE id = ?', $id); + +$arr = array( + 'name' => 'John', + 'is_admin' => TRUE, +); +dibi::query('INSERT INTO users', $arr); +// INSERT INTO users (`name`, `is_admin`) VALUES ('John', 1) + +dibi::query('UPDATE users SET', $arr, 'WHERE `id`=?', $x); +// UPDATE users SET `name`='John', `is_admin`=1 WHERE `id` = 123 + +dibi::query('UPDATE users SET', array( + 'title' => array('SHA1(?)', 'tajneheslo'), +)); +// UPDATE users SET 'title' = SHA1('tajneheslo') +``` + +Getting results + +```php +$result = dibi::query('SELECT * FROM users'); + +$value = $result->fetchSingle(); // single value +$all = $result->fetchAll(); // all rows +$assoc = $result->fetchAssoc('id'); // all rows as associative array +$pairs = $result->fetchPairs('customerID', 'name'); // all rows as key => value pairs + +// iterating +foreach ($result as $n => $row) { + print_r($row); +} +``` + +Modifiers for arrays: + +```php +dibi::query('SELECT * FROM users WHERE %and', array( + array('number > ?', 10), + array('number < ?', 100), +)); +// SELECT * FROM users WHERE (number > 10) AND (number < 100) +``` + + + + + + + + + + + +
%and `[key]=val AND [key2]="val2" AND ...`
%or `[key]=val OR [key2]="val2" OR ...`
%a assoc `[key]=val, [key2]="val2", ...`
%l %in list `(val, "val2", ...)`
%v values `([key], [key2], ...) VALUES (val, "val2", ...)`
%m multivalues `([key], [key2], ...) VALUES (val, "val2", ...), (val, "val2", ...), ...`
%by ordering `[key] ASC, [key2] DESC ...`
%n identifiers `[key], [key2] AS alias, ...`
other - `val, val2, ...`
+ + +Modifiers for LIKE + +```php +dibi::query("SELECT * FROM table WHERE name LIKE %like~", $query); +``` + + + + + +
%like~ begins with
%~like ends with
%~like~ contains
+ +DateTime: + +```php +dibi::query('UPDATE users SET', array( + 'time' => new DateTime, +)); +// UPDATE users SET ('2008-01-01 01:08:10') +``` + +Testing: + +```php +echo dibi::$sql; // last SQL query +echo dibi::$elapsedTime; +echo dibi::$numOfQueries; +echo dibi::$totalTime; +```