Skip to content

Latest commit

 

History

History
186 lines (124 loc) · 6.14 KB

CHANGELOG.md

File metadata and controls

186 lines (124 loc) · 6.14 KB

Version 3.0.2

  • Guarantee that EasyDB::row() always returns an array instead of throwing a TypeError when encountering null. See also: #144.

Version 3.0.1

  • #143: Don't assume the array passed to insertMany() is indexed at 0.
  • Fixed the type declaration of the $duplicates_mode parameter to be nullable in buildInsertQueryBoolSafe().

Version 3.0.0

  • #141: Increased minimum PHP Version to 8.0
    • Lots of code refactoring went into this, including strict-typing with PHP 8's new support for Union Types.
  • #142: Added support for Psalm Security Analysis

Version 2.12.0

  • Migrated from Travis CI to GitHub Actions
  • #136: Added EasyPlaceholder for calling SQL functions on insert/update queries
  • #137: Added csv() method to satisfy feature request #100
  • Miscellaneous boyscouting

Version 2.11.0

  • #120: EasyStatement now defaults to WHERE 1 = 1 instead of WHERE 1 to ensure success with PostgreSQL.
  • #122: Builds on PHP 7.4 in Travis CI, installs on PHP 8.

Version 2.10.0

  • You can now pull the original exception (which may leak credentials via stack trace) from a ConstructorFailed exception by calling the new getRealException() method.
  • Added insertIgnore() (Insert a row into the table, ignoring on key collisions)
  • Added insertOnDuplicateKeyUpdate() (Insert a row into the table; or if a key collision occurs, doing an update instead)
  • #111: EasyStatement: Don't fail with empty IN() statements

Version 2.9.0

  • You can now side-step credential leakage in the Factory class by calling Factory::fromArray([$dsn, $username, $password, $options]) instead of Factory::create($dsn, $username, $password, $options).

Version 2.8.0

  • Our exceptions now integrate with Corner.

Version 2.7.0

  • Changed the behavior of several public APIs to invoke $this->prepare() instead of $this->pdo->prepare(). This might seem subtle, but in actuality, it allows classes that extend EasyDB to implement prepared statement caching.

Version 2.6.2

  • Fix errors when inserting booleans.

Version 2.6.1

  • #77: Detect when the driver is missing and throw a distinct error message to aid in debugging.

Version 2.6.0

  • #69: Fixed an error when using EasyDB with SQLite.
  • #70: You can now use EasyStatement objects for the conditions instead of arrays in EasyDB::update() and EasyDB::delete(). (Arrays are still supported!)

Version 2.5.1

  • Fixed boolean handling for SQLite databases.

Version 2.5.0

  • #56: EasyDB::q() and EasyDB::row() no longer explicitly force PDO::FETCH_ASSOC. Thanks @nfreader.
  • #57: Added EasyDB::insertReturnId() which wraps insert() and lastInsertId(). Important: Do not use this on PostgreSQL, as it is not reliable. Use insertGet() instead, as you normally would have. Reported by @duskwuff.
  • #58: Empty EasyStatement clauses no longer cause broken queries. Reported by @duskwuff.
  • #59: Fixed grouping/precedence issues with EasyStatement subqueries. Reported by @duskwuff.

Version 2.4.0

  • Thanks to @SignpostMarv, you can now easily run an entire block of code in a flat transaction:
    $easyDb->tryFlatTransaction(function (EasyDB $db) { /* ... */ });
  • EasyDB is now fully type-safe. This is verified by Psalm. If you're using a static analysis tool on your project that uses EasyDB, this should eliminate a lot of false positive findings.
  • We now allow the / character to be used in SQLite identifiers.

Version 2.3.1

  • Fix SQLite setting UTF-8 mode.

Version 2.3.0

  • Added EasyDB::buildInsertQuery for building INSERT statements without executing.
  • Fixed escaping of backslashes in LIKE statements.

Version 2.2.1

  • Adopt strict PSR-2 code style and add phpcs check.

Version 2.2.0

  • Added EasyDB::escapeLikeValue() for escaping wildcards in LIKE condition values.

Version 2.1.1

  • Fix PHP version requirement to work with HHVM.

Version 2.1.0

  • Import EasyStatement from 1.x version.

Version 2.0.1 - 2016-10-18

  • Fixed a segfault caused by attempting to clone PDO objects.

Version 2.0.0 - 2016-10-18

The lion's share of the version 2.0.0 release was contributed by @SignpostMarv.

  • Unit testing (with >80% test coverage)
  • PHP 7 support
  • Added an optional argument to safeQuery(), which allows INSERT/UPDATE queries to return success/failure instead of an empty array.
  • Added optional support for separators in escapeIdentifier().

Version 1.1.0

  • Add EasySatement condition builder, thanks @shadowhand

Version 1.0.0 - 2016-04-22

  • Version 1.0.0 EasyDB official release.
  • Supports PHP 5.

Version 0.2.4

  • Fix more issues with constructor names.

Version 0.2.3

  • Fix exception namespaces

Version 0.2.2

  • Get rid of composer version directive. Use github instead.

Version 0.2.1

  • Do not emulate prepared statements.

Version 0.2.0

  • Optimized EasyDB::column() thanks @Xeoncross
  • Added EasyDB::insertMany(), so it's possible to insert many rows at once using the same prepared statement.

Version 0.1.0

Initial Release