PHP-Query contains a single, instantiable, class, which provides a PHP ORM like
API for plain and straightforward query generation.
Queries are not executed by the class or ORM, but rather return the SQL statement that ought to be run against a database resource.
While it is modelled after the ActiveRecord pattern, it follows plain language that I felt would make code easier to read and maintain.
<?php // select a username's details $query = new Query(); $query->select('*'); $query->from('users'); $query->where('username', 'onassar'); $parsed = $query->parse(); // update a user record $query = new Query(); $query->update('users'); $query->set('fname', 'Oliver'); $query->where('username', 'onassar'); $parsed = $query->parse(); // insert a user record $query = new Query(); $query->insert(array( 'fname' => 'Oliver', 'lname' => 'Nassar', 'username' => 'onassar' )); $query->into('users'); $parsed = $query->parse();
Worth mentioning is that this approach to database-access isn't ideal for speed and memory. You're adding an extra, "unrequired", step for your application.
Regarding the section above, I've stumbled upon some information suggesting that
during the filter stage of generating a query, the performance will be effected
varchar column has it's value compared without apostrophes. Presumably,
the converse is true.
As an example,
U.username = 12345 should be written as
U.username = '12345'.
Query class presumes that all columns are varchars, and thus wraps the
values in apostrophes. The only exception to this is when a third parameter is
pased to the
$query->where('user_id', 1) will be rendered as
WHERE user_id = '1' vs the
WHERE user_id = '1'. Passing in that third parameter forces the
apostrophes to be left off the value definition.
Keep this in mind if you're concerned about the performance of oftenly executed queries, especially if they're part of any indices.