2017 © Pedro Peláez
 

library flame

The PDO wrapper with comfortable API for placeholders

image

nkt/flame

The PDO wrapper with comfortable API for placeholders

  • Wednesday, April 8, 2015
  • by nkt
  • Repository
  • 6 Watchers
  • 23 Stars
  • 485 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

Flame

Build Status Coverage Status, (*1)

The PDO wrapper with comfortable API for placeholders, (*2)

Installation

Flame requires php 5.4+ and PDO extension., (*3)

composer require nkt/flame:~1.0

Usage

<?php

use Flame\Connection;
use Flame\Grammar\MysqlGrammar;

$db = new Connection('mysql:dbname=hello_world', 'user', 'password', [], new MysqlGrammar());
$db->prepare(...);

Idea

Write placeholders types directly in the query, (*4)

For example:, (*5)

SELECT * FROM goods g WHERE g.price BETWEEN f:minPrice AND f:maxPrice;
SELECT * FROM users u WHERE u.username = s:username; -- :username also bind as string
SELECT * FROM orders o WHERE o.id = i:id;
SELECT * FROM users u WHERE u.registered >= d:date;

Difference between native PDO placeholders

Unlike PDO you can re-use the same placeholder as long as necessary. Also you have to specifying the type of the placeholder just once., (*6)

$users = $flame->prepare(
    'SELECT * FROM users WHERE age >= i:age OR (registered < d:registered AND age = :age)'
)->execute(['age' => $age]);

You don't need cast every integer values, Flame do it for you., (*7)

$stmt = $flame->prepare('SELECT * FROM users WHERE id = i:id)');
$users = $stmt->execute(['id' => $_POST['id']]);

Every query execution Flame tests value is null and if it is, change placeholder type to PDO::PARAM_NULL., (*8)

$stmt = $flame->prepare('INSERT INTO users VALUES(s:username, d:last_login))');
$users = $stmt->execute(['username' => 'John Doe', 'last_login' => null]);

Flame add new types: date and time. You can bind this data as DateTime, string or int., (*9)

Placeholder types

Placeholder Type
s string
i integer
f float
b boolean
l blob
d datetime
t time

Query builder

Flame also provide powerful query builder. Connection provide base wrappers:, (*10)

  • Connection::select(string $column...)
  • Connection::update(string $table, array $columns)
  • Connection::insert(string $table, array $columns)

Every sql statement provides by method with same name in camelCase., (*11)

Examples:, (*12)

$posts = $db->prepare(
    $db->select('p.id', 'p.title', 'p.content')
       ->from('posts p')
       ->join('post_tags pt', 'p.id', 'pt.post_id')
       ->join('tags t', 't.id', 'pt.tag_id')
       ->where(function ($e) {
           $e->equal('t.name', ':tag');
       })
)->execute(['tag' => $tag]);

$db->prepare($db->insert('users', [
        'username'   => ':name',
        'password'   => ':pass',
        'registered' => 'd:now'
    ]))->execute([
        'name' => $name,
        'pass' => $pass,
        'now'  => new \DateTime()
   ]);

License

MIT, (*13)

The Versions

08/04 2015

dev-master

9999999-dev

The PDO wrapper with comfortable API for placeholders

  Sources   Download

MIT

The Requires

  • php ~5.4
  • ext-pdo >1.0.3

 

The Development Requires

by Gusakov Nikita

database sql pdo db placeholder query-builder

08/04 2015

1.1.1

1.1.1.0

The PDO wrapper with comfortable API for placeholders

  Sources   Download

MIT

The Requires

  • php ~5.4
  • ext-pdo >1.0.3

 

The Development Requires

by Gusakov Nikita

database sql pdo db placeholder query-builder

29/03 2015

1.1.0

1.1.0.0

The PDO wrapper with comfortable API for placeholders

  Sources   Download

MIT

The Requires

  • php ~5.4
  • ext-pdo >1.0.3

 

The Development Requires

by Gusakov Nikita

database sql pdo db placeholder query-builder

29/03 2015

1.0.0

1.0.0.0

The PDO wrapper with comfortable API for placeholders

  Sources   Download

MIT

The Requires

  • php ~5.4
  • ext-pdo >1.0.3

 

The Development Requires

by Gusakov Nikita

database sql pdo db placeholder query-builder

05/05 2014

v0.3.0

0.3.0.0

The PDO wrapper with comfortable API for placeholders

  Sources   Download

MIT

The Requires

  • php ~5.4
  • ext-pdo >1.0.3

 

The Development Requires

by Gusakov Nikita

database sql pdo db placeholder query-builder

02/05 2014

v0.2.0

0.2.0.0

The PDO wrapper with comfortable API for placeholders

  Sources   Download

MIT

The Requires

  • php ~5.4
  • ext-pdo >1.0.3

 

The Development Requires

by Gusakov Nikita

database sql pdo db placeholder query-builder

21/04 2014

v0.1.0

0.1.0.0

The PDO wrapper with comfortable API for placeholders

  Sources   Download

MIT

The Requires

  • php ~5.4
  • ext-pdo >1.0.3

 

The Development Requires

by Gusakov Nikita

database sql pdo db placeholder