[ci skip] Partial patch for #2284
The issue description is about update_string(), which
I'm not sure if can be fixed at all. This patch only
addresses protect_identifiers().
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 659664d..34d3a59 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -1788,12 +1788,15 @@
// with an alias. While we're at it, we will escape the components
if (strpos($item, '.') !== FALSE)
{
- $parts = explode('.', $item);
+ $parts = explode('.', $item);
// Does the first segment of the exploded item match
// one of the aliases previously identified? If so,
// we have nothing more to do other than escape the item
- if (in_array($parts[0], $this->qb_aliased_tables))
+ //
+ // NOTE: The ! empty() condition prevents this method
+ // from breaking when QB isn't enabled.
+ if ( ! empty($this->qb_aliased_tables) && in_array($parts[0], $this->qb_aliased_tables))
{
if ($protect_identifiers === TRUE)
{