Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
- [DOC] Numerous docblock and README updates.
- [ADD] Add various
Select::reset*()methods. Fixes #84, #95, #94, #91.
- [FIX] On SELECT, allow OFFSET even when LIMIT not specified. Fixes #88.
- [FIX] On SELECT, allow
from*(). Joins-before-from are added
to the first from. If no from is ever added, the joins will never be built
into the statement. Fixes #69, #90.
- [BRK] Bumped the minimum version to PHP 5.3.9 (vs 5.3.0). Fixes #74. This is
to address a language-level bug in PHP. Technically I think this is a BC
break, but I hope it is understandable, given that PHP 5.3.x is end-of-life,
and that Aura.SqlQuery itself simply will not operate on versions earlier
than that. Updated README to reflect the version requirement.
- (DOC) Docblock and README updates; in particular, add an
@method getStatement()to the QueryInterface for IDE auto-completion.
- (ADD) Select::hasCols() reports if there are any columsn in the Select.
- (ADD) Select::getCols() gets the existing columns in the Select.
- (ADD) Select::removeCol() removes a previously-added column.
- (FIX) Select::reset() now properly resets the table refs for a UNION.
- (FIX) Select::forUpdate() is now fluent.
- Docblock and README updates
- The Common\Select class, when binding values from a subselect, now checks for
instanceof SubselectInterfaceinstead of
self; the Select class now
implements SubselectInterface, so this should not be a BC break.
- Subselects bound as where/having/etc conditions should now retain ?-bound
This release incorporates two feature additions and one fix.
- ADD: The Insert objects now support multiple-row inserts with the new
- ADD: The MySQL Insert object now supports
ON DUPLICATE KEY UPDATEfunctionality with the new
- FIX: The Select methods regarding paging now interact better with LIMIT and OFFSET; in particular,
setPaging()now re-calculates the LIMIT and OFFSET values.
This release has several new features.
- The various
join()methods now have an extra
$bindparam that allows you to bind values to ?-placeholders in the condition, just as with
- The Select class now tracks table references internally, and will throw an exception if you try to use the same table name or alias more than once.
- The method
getStatement()has been added to all queries, to allow you to get the text of the statement being built. Among other things, this is to avoid exception-related blowups related to PHP's string casting.
- When binding a value to a sequential placeholder in
having(), etc, the Select class now examind the value to see if it is a query object. If so, it converts the object to a string and replaces the ?-placeholder inline with the string instead of attempting to bind it proper. It also binds the existing sequential placholder values into the current Select in a non-conflicting fashion. (Previously, no binding from the sub-select took place at all.)
joinSubSelect(), the Select class now binds the sub-select object sequential values to the current Select in a non-conflicting fashion. (Previously, no binding from the sub-select took place at all.)
The change log follows:
- REF: Extract rebuilding of condition and binding sequential values.
- FIX: Allow binding of values as part of join() methods. Fixes #27.
- NEW: Method Select::addTableRef(), to track table references and prevent double-use of aliases. Fixes #38.
- REF: Extract statement-building to AbstractQuery::getStatement() method. Fixes #30.
- FIX: #47, if value for sequential placeholder is a Query, place it as a string inline
- ADD: Sequential-placeholder prefixing
- ADD: bind values from sub-selects, and modify indenting
- ADD: QueryFactory now sets the sequntial bind prefix
- FIX: Fix line endings in queries to be sure tests will pass on windows and mac. Merge pull request #53 from ksimka/fix-tests-remove-line-endings: Fixed tests for windows.
- Merge pull request #50 from auraphp/bindonjoin: Allow binding of values as part of join() methods.
- Merge pull request #51 from auraphp/aliastracking: Add table-reference tracking to disallow duplicate references.
- Merge pull request #52 from auraphp/bindsubselect. Bind Values From Sub-Selects.
- DOC: Update documentation and support files.
To avoid mixing numbered and names placeholders, we now convert numbered ? placeholders in where() and having() to :# named placeholders. This is because PDO is really touchy about sequence numbers on ? placeholders. If we have bound values [:foo, :bar, ?, :baz], the ? placeholder is not number 1, it is number 3. As it is nigh impossible to keep track of the numbering when done out-of-order, we now do a braindead check on the where/having condition string to see if it has ? placholders, and replace them with named :# placeholders, where # is the current count of the $bind_values array.
- ADD: Select::fromRaw() to allow raw FROM clause strings.
- CHG: In Select, quote the columns at build time, not add time.
- CHG: In Select, retain columns keyed on their aliases (when given).
- DOC: Updates to README and docblocks.